Rails Необязательная регистрация - изменение параметров перед сохранением - PullRequest
0 голосов
/ 23 ноября 2011

Я разрабатываю приложение с дополнительной регистрацией. Я хочу, чтобы пользователи с учетными записями и без них могли добавлять ссылки. Как я могу назначить session[user_id] пользователя столбцу user_id 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 

Я представляю что-то вроде этого ..

  def create
    if session[:user_id]
    #@link equals new link params with user_id = session[:user_id]
    else
    @link = Link.new(params[:link]) 
    end 
    if @link.save
      flash[:notice] = "The link was successfully added"
      redirect_to :action => :hot
    else 
      redirect_to :action => :new
    end
  end 

1 Ответ

1 голос
/ 23 ноября 2011
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

Ссылка будет сохранена с параметрами [: link], даже если пользователь не вошел в систему.

Будьте осторожны, используя render, а не redirect_to, при сбое проверки (посмотрите, хотите ли вы http://guides.rubyonrails.org/action_controller_overview.html)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...