控制器无法检索记录

时间:2014-01-03 18:11:44

标签: sql ruby-on-rails ruby-on-rails-3 activerecord

我的控制器正在搜索没有我传递给它的user_id的记录。

这是我的控制者:

def update
@untrained = Certificate.find_by_user_id(params[:id])
@untrained.update_attributes(attend: "No")
redirect_to grandstreamers_resellers_path
end

这是错误:

Processing by CertificatesController#update as 
Parameters: {"utf8"=>"✓", "authenticity_token"=>"xxx=", "certificate"=>{"user_id"=>"7"}, "commit"=>"Un-Train"}
  

证书加载(0.1ms)SELECT certificates。* FROM certificates WHERE certificatesuser_id IS NULL LIMIT 1   在2ms完成500内部服务器错误

user_id作为字符串发送,Certificate中的user_id是整数。 为什么我的SELECT搜索用user_id为NULL?

1 个答案:

答案 0 :(得分:2)

请注意日志中的"certificate"=>{"user_id"=>"7"},

您需要params[:certificate][:user_id],而不是params[:id]

Certificate.where(user_id: params[:id]).first.update_attributes(attend: "No")