Railsで1対他のリレーションになっているモデル・コントローラにパラメタを渡したい
- 最近、所用でRailsでWebアプリを作っているので、その時にぶちあたったメモ
- 今回は下記をしようと思っています
- モデルAはモデルBをhas_manyしている
- モデルBのmodels_pathにアクセスする時、モデルAに紐づくモデルBのみを表示したい
詰まってたこと
- 例えばViewで下記のようなリンクで、indexに飛ばしたいとすると、idが無いというエラーがでた
<%= link_to 'Bデータ', models_path(a_id) %>
def index @models = ModelB.find(params[a_id]) end
解決
- ROUTINGに下記を記載。そうすると、 /モデルA/A.id/モデルBへのルーティングが形成される。
- これをリンクに貼り付ければおk
resources :As do resources :Bs end
2.2.1 :098 > app.A_Bs_path(1) => "/As/1/Bs" 2.2.1 :099 >