開発環境
Rubyバージョン: 2.6.5
Railsバージョン: 6.1.3
deviseは導入してません。
#ホームページとhomeコントローラー
get "home/top"=>"home#top"
def top
end
###解説
get "URL"=>"コントローラー名#アクション名" で”localhost:3000/home/top”
というURLが送信された時にhomeコントローラーのtopアクションで記述されたコードが実行されます。
#記事一覧ページ
def index
@posts = Post.all.order(created_at: :desc)・・・1
end
<% @posts.each do |post| %> ・・・2
<div class="posts-index-item">
<%=post.content %>・・・2
</div>
</div>
<% end %>・・・3
###解説
・・・1:postsコントローラーのindexアクションにおいて、postsテーブルに保存されている全てのデータを
変数@postsに代入しています。また、Post.all.order(created_at: :desc)と書くことで、投稿順が新しいものが上になるようになります。
・・・2:@postsに代入されている配列データをeach文で1つずつ変数postに代入して、投稿内容を繰り返し表示させています。
・・・3<%=post.content %>のように<% %>で囲むことによって、HTMLファイルの中にRubyコードを記述できます。これをerb(=Embedded Ruby(埋め込みRuby))といい、埋め込んでいるRubyコードをブラウザに表示させることができます。また、<%= %>と表記すると中に埋め込まれている変数の値が読み込まれるため3の場合だと、<%=end%>と表記する必要はありません。
#参考になった記事
postの表示の順番