Добавление переменной в params в рельсах - PullRequest
37 голосов
/ 04 декабря 2010

Как я могу добавить user_id в params [: page] Я не хочу использовать скрытые поля.

@page= Page.new(params[:page])

Есть ли способ использовать как

@page= Page.new(:name=>params[:page][:name], :user_id => current_user.id)

Ответы [ 3 ]

70 голосов
/ 04 декабря 2010

Я использую этот день за днем:

@page= Page.new(params[:page].merge(:user_id => 1, :foo => "bar"))
16 голосов
/ 04 декабря 2010

Вместо этого создайте ассоциацию (предполагается, что у вас has_many :pages в модели User):

@page = current_user.pages.build(params[:page])

Это автоматически установит user_id для объекта Page.

2 голосов
/ 18 июля 2013

Вместо того, чтобы пытаться объединить идентификатор current_user, вы можете построить правильные ассоциации моделей и затем охватить метод new()

Модель

class Page < ActiveRecord::Base
 belongs_to :user
end

class User < ActiveRecord::Base
 has_many :pages
end

Контроллер

if current_user
 @page = current_user.pages.new(params[:page])
else
 @page = Page.new(params[:page])
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...