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”})。首先
。