<Ruby on Rails> URLにid番号とページ情報を反映させる

routesファイルへの入力

gets "controller名/:id" => controller名.action名

controller名/:idという記載をすると、"/controller名/〜"という条件のURLが全て当てはまることになるので、 routesファイルに記載するとき、同一のcontroller名の記載のある箇所の最後にコードを記載する。

controllerファイルへの入力

def action@変数名 = モデルクラス名.find_by(id: params[:id])
end

params[:id]にはroutesファイルで取得したid番号のハッシュ番号が入っているので、id番号の取得が可能。

viewファイルへの入力

viewフォルダのコントローラ名と同じフォルダの中にhtml.erbファイルを新規作成し、

<%= @変数1.カラム名 %>

と表記することで、params[:id]で取得されたidをfind_byメソッドで取得し、取得したデータのカラムをhtmlに出力できる。
また、each文とlink_to文を使用して以下のように記述することもできる。

<% @変数1.each do |変数2| %>
<%= link_to(変数2.カラム名,"/controller名/#{変数2.id}") %>
<% end %>