Как передать дополнительные атрибуты или аргументы в Object.new в контроллере - PullRequest
0 голосов
/ 28 ноября 2011

У меня есть простой

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

Мне нужно передать: user_id => current_user.id в этот новый обмен

Я пробовал:

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

это не создает погашение с помощью user_id ...

1 Ответ

1 голос
/ 28 ноября 2011

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]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...