Ответ 1
Я использую этот день изо дня в день:
@page= Page.new(params[:page].merge(:user_id => 1, :foo => "bar"))
Как я могу добавить user_id в params [: page], я не хочу использовать скрытые поля.
@page= Page.new(params[:page])
Есть ли способ использовать как
@page= Page.new(:name=>params[:page][:name], :user_id => current_user.id)
Я использую этот день изо дня в день:
@page= Page.new(params[:page].merge(:user_id => 1, :foo => "bar"))
Вместо этого создайте ассоциацию (предположим, что у вас есть has_many :pages
в модели User
):
@page = current_user.pages.build(params[:page])
Это автоматически установит user_id
для объекта Page
.
Вместо того, чтобы пытаться объединить идентификатор 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