teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

ルーティングの修正を追記

2020/09/10 10:08

投稿

necocoa
necocoa

スコア209

answer CHANGED
@@ -8,4 +8,22 @@
8
8
 
9
9
  あとは`params[:kadai_id]`が取れていないため`nil`になっているのですが、これは`routes.rb`を見ないと修正できません。
10
10
 
11
- 色々と情報不足のため、`routes.rb`と各モデルの情報を追記してみてください。
11
+ 色々と情報不足のため、`routes.rb`と各モデルの情報を追記してみてください。
12
+
13
+ ###### 追記
14
+ `get "choices/:id/choice" => "choices#choice"`
15
+ 例えばこのURLの場合、choices#choiceアクションではparams[:id]でURLの:id部分を取得することができます。
16
+
17
+ `get "choices/:id/choice/:id" => "choices#show"`
18
+ こちらのchoices#showアクションの場合、:idが2つあるため2つを分けて取得することができません。
19
+ こういう時は
20
+ `get "choices/:kadai_id/choice/:id" => "choices#show"`
21
+ のように:idの部分を分けて記述をします。
22
+
23
+ 1個目の:idを:kadai_idに変更すると、
24
+ 取りたかった`Choicekadai.find_by(id: params[:kadai_id])`が取れるのではないでしょうか
25
+
26
+ また、routesがご自身でおっしゃるとおりRailsらしくはありません。
27
+
28
+ [Railsのルーティング](https://railsguides.jp/routing.html#%E3%83%AA%E3%82%BD%E3%83%BC%E3%82%B9%E3%83%99%E3%83%BC%E3%82%B9%E3%81%AE%E3%83%AB%E3%83%BC%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0-rails%E3%81%AE%E3%83%87%E3%83%95%E3%82%A9%E3%83%AB%E3%83%88)
29
+ こちらを参考にCRUDベースで作ることを勉強すると良くなると思います。