我的控制器正在搜索没有我传递给它的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
。* FROMcertificates
WHEREcertificates
。user_id
IS NULL LIMIT 1 在2ms完成500内部服务器错误
user_id作为字符串发送,Certificate中的user_id是整数。 为什么我的SELECT搜索用user_id为NULL?
答案 0 :(得分:2)
请注意日志中的"certificate"=>{"user_id"=>"7"},
。
您需要params[:certificate][:user_id]
,而不是params[:id]
。
Certificate.where(user_id: params[:id]).first.update_attributes(attend: "No")