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

回答編集履歴

1

追記

2020/02/19 03:15

投稿

winterboum
winterboum

スコア23654

answer CHANGED
@@ -1,4 +1,23 @@
1
1
  `undefined method `like_user' for #<Hall::ActiveRecord_Relation..`
2
2
  となっています。
3
3
  おそらく controller で where で絞り込むか all でとり込むかした値がそのまま view の hall に渡っているのだと思います。(ActiveRecord_Relationとなってる)
4
- find_by で取るか、もしくは first(一つしか無いか、最初ので良いかなら)してHallのインスタンスにしてください
4
+ find_by で取るか、もしくは first(一つしか無いか、最初ので良いかなら)してHallのインスタンスにしてください
5
+
6
+ 追記
7
+ indexであるなら、複数ですから
8
+ ```
9
+ # CONTROLLER
10
+ def index
11
+ @halls = Hall.all # params[:id]があるんですか?このidは何のid? それに応じたwhereにする
12
+ end
13
+
14
+ # views/halls/index.html.haml
15
+ .hall
16
+ - if @halls.present?
17
+ - @halls.each do |h|
18
+ ```
19
+ で問題は likes/like です。
20
+ locals: { hall: @hall, halls: @halls, likes: @likes, like: @like}
21
+ と沢山渡してますがこの中で定議されているのはひとつだけ。
22
+ このpartialはindexの中で何回呼ばれるのでしょうか?
23
+ index.htmlを見た限りでは一回だけです。すると沢山ある hall のそれぞれに沢山あるlikeのどれをdeleteするのですか?