2

問題の原因となるフォーム:

<%= form_for Like.find(post.user.likes), :html => { :method => :delete , :class => "unlike_post_like_form" } do |f| %>

ポストモデル

belongs_to :user
has_many :likes

ユーザーモデル

  has_many :posts
  has_many :likes

モデルのように

  belongs_to :post
  belongs_to :user

次のエラーが発生し続けます:

TypeError in Users#show 
Cannot visit Like

の上

Like.find(post.user.likes),

編集:

最初の解決策:

変化

Like.find(post.user.likes),

Like.find(post.user.likes).limit(1),

2番目の解決策:

変化

Like.find(post.user.likes),

current_user.likes.where(:post_id => post.post_id)
4

2 に答える 2

5

Like.find(post.user.likes)Likeの指定された配列を見つけようとしていますlikes。それはあまり意味がありません。

ほとんどの場合、検索するpost.user.likes必要がありますが、それでも、私は少し混乱しています。さらにコードを投稿する必要があります。

Like.findid(整数)またはキーと値を含むハッシュのいずれかを探しています。配列は検索する情報を提供しません。

編集:あなたが現在のユーザーの同類を探しているなら。次のことを行う必要があります...

current_user.likes.where(:post => @post)

于 2012-09-08T18:45:23.247 に答える
1

タイプエラーは、コレクション(post.user.likes-は配列)を、たとえばレコードIDを期待するメソッドに渡すことで発生しLikes.find(3)ます。Likes.find(params[:id])

于 2012-09-08T18:45:38.283 に答える