LoginSignup
0
0

More than 3 years have passed since last update.

ドリルTX45 

Posted at

class ArticlesController < ApplicationController

def show
article = Article.find(params[:id])
end
end

これでは表示されない、、、

Railsではコントローラで設定された「インスタンス変数」がビューに渡される仕組みになっている。

コードのarticleは通常のローカル変数であるためビューで使うことができない。そのため、articleを@articleに変更すればよい。

4行目のArticle.find(params[:id])という記述のうち、params[:id]には詳細表示されたいレコードのidが格納されます。なぜそのような動作になるのか、「rails routes」という言葉を使って説明してください。

rails routesを使ってアプリケーションのルーティングを確認すると、通常showアクションには以下のような設定がされている。

1 Prefix Verb URI Pattern Controller#Action
2 tweet GET /tweets/:id(.:format) tweets#show
そのため、例えば「localhost:3000/tweets/3」というURLが指定されると、paramsの「:id」というキーのバリューとして「3」が代入される。

そのため、そのあと呼び出されたコントローラー内でparams[:id]と取り出すことができる。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0