Progate_Ruby on Rails5道場コース1

1・目標物確認

 

2・アプリケーション

・アプリケーションの作成
ターミナルで「rails new アプリケーション名」
・サーバ起動
ターミナルで「rails server」

3・homeページを作る

・ターミナルで「rails g controller コントローラ名 アクション名」
・「app/home」のにできた「top.html.erb」に指定のコードを貼り付け
・「app/assets/stylesheets」の「home.scss」に指定のコードを貼り付け

4・URLを変更

・ルーティングを変更することでURLを変更( / に変更)

5・サービス紹介ページ(aboutページの作成)

・「about」ページのルーティング追加
・「views」フォルダに「about.html.erb」を作成
・作成した「about.html.erb」に指定のコードを貼り付け

6・ヘッダーを作る

・ヘッダーは共通なので「application.html.erb」に指定のコードを貼り付け
・リンク:link_toメソッドで指定。<%= link_to("表示名","URL") %>
※link_toのリンク「/」忘れやすいので注意。

7・モデルとテーブルを作る

・ターミナルで「rails g model テーブル名 カラム名:データ型」
 内容があっているか確認して
 ターミナルに「rails db:migrate」データベースに反映
・実際にターミナルを使って投稿
+「rails console」を起動
 +モデルのインスタンス(Post.new(引数)、引数に「content:”内容”」)を生成。
 +saveメソッドでデータベースに保存

8・投稿一覧ページの作成

・ターミナルで「Rails g controller posts index」
 ルーティングに「posts/index〜」、postsコントローラにindexアクション
・indexアクション
 +投稿すべてを取得するには「モデル名.all」、「@posts」に代入。
 +orderメソッド(order(カラム名: :順番)、昇順asc/降順desc)で
  投稿日時(created_at)順にする
・viewsフォルダに作成された「index.html.erb」ファイル
 +指定コードを貼り付け
 +「@posts」をeach文を使って1件ずつ投稿内容(post.content)を表示
・「application.html.erb」に「投稿一覧」へのリンク<%= link_to("表示名","URL") %>

9・投稿詳細ページ

・ルーティング:「"posts/:id"=>"posts#アクション名"」
 ※ posts/indexのルーティングより下に追加
・投稿表示用のアクションをpostsコントローラに追加
 +投稿表示用のアクションの名前でviewsフォルダにビューファイルを手作成
 +find_byメソッド、paramsを使って投稿内容の情報を「@post」に代入
 (@post=find_by(id: params[:id]))
・手作成したビューファイルに指定のコードを貼り付け
 +投稿の内容:@post.content、投稿日時:@post.created_at
・8で作った「index.html.erb」に投稿詳細ページへのリンクを作成
 <%= link_to("表示名","URL") %>、
表示名:post.content、URL:投稿詳細ページのURL(文字列なので#{@post.id})

総評
基本ヒントなくできた。1回目に比べてかなり理解度は高まっている。