如何将user_id添加到params [:page]我不想使用隐藏字段。
@page= Page.new(params[:page])
有没有办法像
一样使用@page= Page.new(:name=>params[:page][:name], :user_id => current_user.id)
答案 0 :(得分:68)
我日复一日地使用这一天:
@page= Page.new(params[:page].merge(:user_id => 1, :foo => "bar"))
答案 1 :(得分:16)
不是这样做,而是建立关联(假设您在has_many :pages
模型中有User
):
@page = current_user.pages.build(params[:page])
这会自动为user_id
对象设置Page
。
答案 2 :(得分:2)
您可以构建正确的模型关联,然后确定current_user
方法的范围
new()
id。
<强>模型强>
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