Ruby on Rails 4
我从表单传递隐藏的值。
<%= f.hidden_field :applied_program, :value => @applied_program.id %>
这是张贴的内容:
"applied_program"=>"891"} ...
ActiveRecord::RecordNotFound (Couldn't find AppliedProgram with 'id'={"applied_program"=>"891"})
我正在尝试更新控制器中应用程序的属性。
我不知道如何将参数分配给记录。这是我正在尝试的,但它无法根据传递的参数找到它。
我也试过在没有.id的情况下传递@applied_program但是我在使用Object信息时遇到同样的问题。 :/
@applied_program = AppliedProgram.find(applied_program_params)
控制器白名单:
def applied_program_params
params.require(:payment).permit(:applied_program)
end
答案 0 :(得分:2)
试试这个
@applied_program = AppliedProgram.find(payment_params[:applied_program])
def payment_params
params.require(:payment).permit(:applied_program)
end
您的数据将如下所示从表单传递到控制器
{:permit => {:applied_program => 891}}
更新:
applied_program_id = payment_params.delete(:applied_program)
@payment = Payment.new(payment_params)
@applied_program = AppliedProgram.find(applied_program_id)