使用参数中的值

时间:2014-07-18 18:54:10

标签: ruby-on-rails activerecord ruby-on-rails-4 strong-parameters

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

1 个答案:

答案 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)