Ruby on rails 如何修复Rails中的未知密钥错误?

Ruby on rails 如何修复Rails中的未知密钥错误?,ruby-on-rails,Ruby On Rails,在我的控制器中,我有: @like = Like.find(:product_id => params[:id].to_i, :user_id => current_user.id, :liked => "Yes") @like.destroy 类似的表格如下: class Like < ActiveRecord::Base attr_accessible :liked, :product_id, :user_id end 类类似于params[:

在我的控制器中,我有:

    @like = Like.find(:product_id => params[:id].to_i, :user_id => current_user.id, :liked => "Yes")
    @like.destroy
类似的表格如下:

class Like < ActiveRecord::Base
  attr_accessible :liked, :product_id, :user_id
end
类类似于
但是,当我尝试运行此操作时,会出现一个错误,提示未知密钥:product\u id。有关于如何修复此问题的建议吗?

尝试以下操作:

@like = Like.where(:product_id => params[:id].to_i, :user_id => current_user.id, :liked => "Yes").first
@like.destroy if @like

您正在使用的查找方法接受对象的id。

find
需要主id,但是
find\u by
允许您指定其他值,因此您可以说:

find_by(:product_id => params[:id].to_i, :user_id => current_user.id, :liked => "Yes")

它返回一条与条件匹配的记录,相当于
中的(…)。根据

获取与@yosep的答案类似的
。。。您还可以使用:
@like=like.find(:all,条件:{:product\u id=>params[:id]。to\u i,:user\u id=>current\u user.id,:like=>“Yes”})。首先