如何将添加属性或参数传递给对象.new in Controller



我有一个简单的

@redemption = Redemption.new(params[:redemption])

我需要传递:user_id => current_user。id到这个新的Redem

I have try:

 @redemption = Redemption.new(params[:redemption], :user_id => current_user.id)

params是一个散列,所以如果你想在create中添加额外的属性,只需将它们添加到params中,例如:

params[:redemption][:user_id] = current_user.id
@redemption = Redemption.new params[:redemption]

或者,如果你想一次添加多个属性,使用Hash#merge,例如:

redemption_params = params[:redemption].merge :user_id   => current_user.id,
                                              :some_attr => :foo
@redemption = Redemption.new redemption_params

在这种特殊情况下,您可以使用更短的语法,例如:

current_user.redemptions.create params[:redemption]

最新更新