Rails可选注册 - 保存前更改参数

时间:2011-11-22 21:31:55

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.1

我正在开发一个带有可选注册的应用程序。我想允许有帐户和没有帐户的用户能够添加链接。如果用户在创建链接时已登录,我怎么能将用户的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 

1 个答案:

答案 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