我正在开发一个带有可选注册的应用程序。我想允许有帐户和没有帐户的用户能够添加链接。如果用户在创建链接时已登录,我怎么能将用户的session[user_id]
分配到user_id
的{{1}}列?
当前代码:Link
在任何一种情况下都保持为
user_id
我在想像这样的东西..
def create
@link = Link.new(params[:link])
if @link.save
flash[:notice] = "The link was successfully added"
redirect_to :action => :hot
else
redirect_to :action => :new
end
end
答案 0 :(得分:1)
def create
@link = Link.new params[:link]
@link.user_id = session[:user_id] if session[:user_id]
if @link.save
redirect_to { action: 'hot' }, notice: 'The link was successfully added'
else
render :new
end
end
即使用户未登录,链接也会以params [:link]保存。
在验证失败时要谨慎使用渲染,而不是redirect_to(看看是否需要http://guides.rubyonrails.org/action_controller_overview.html)