Rails придумать, как перевернуть поток? - PullRequest
1 голос
/ 20 февраля 2011

Мне было интересно, как вы переворачиваете поток веб-сайта.

Пример: Обычно посетителю нужен логин, чтобы написать резюме. Когда посетитель заходит на страницу и нажимает кнопку «Создать сводку», он обычно перенаправляется на страницу регистрации.

Как перевернуть поток. Таким образом, вы можете написать резюме без входа в систему. И когда вы нажимаете «Далее», вам необходимо войти или создать пользователя. Пользователь решает создать пользователя, и сводка создается с помощью ассоциации, или пользователь имеет логин, а также создает и ассоциацию.

Как создать это с помощью устройства?

1 Ответ

1 голос
/ 20 февраля 2011

Я предлагаю следующий подход:

После создания сводки сохраните ее идентификатор в переменной сеанса.Затем, когда пользователь входит в систему, если в его сеансе обнаружены какие-либо сводные идентификаторы, свяжите их с зарегистрированным пользователем

Например:

class SummaryController < ApplicationController
  def create
    @summary = Summary.create!(params[:summary])
    unless user_signed_in?
      session[:anon_summary_ids] ||= []
      session[:anon_summary_ids] << @summary.id
      redirect_to(user_sign_in_path, :notice => "Thanks for the summary! Please sign in...")
    end
  end
end

class ApplicationController
  before_filter :associate_summaries, :if => [:user_signed_in?, :anon_summaries?]

  private

  def anon_summaries?
    session[:anon_summary_ids].try(:any?)
  end

  def associate_summaries
    Summary.where(:id => session[:anon_summary_ids], :user_id => nil).update_all(:user_id => current_user.id)
    session[:anon_summary_ids] = nil
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...