Я пытался искать везде, но не могу найти ответ.
Я использую Authlogic для аутентификации в моем приложении Rails. Я хотел бы разрешить пользователям входить в систему или регистрироваться, используя ту же форму и одно и то же действие / кнопку отправки. Пример поведения, к которому я обращаюсь, - это то, как Tumblr обрабатывает свои логин / регистрацию: http://www.tumblr.com/
Когда пользователь вводит свой адрес электронной почты и пароль, если у них уже есть учетная запись, он регистрирует их в своей учетной записи. Эту же форму можно использовать для создания нового блога (с текстовым полем URL).
Моя настоящая форма невероятно проста:
= form_for(@user_session) do |f|
= f.text_field :email, :placeholder => "email address"
= f.password_field :password, :placeholder => "password"
= f.submit "get started"
Я попытался создать настраиваемое действие в контроллере приложения, которое перенаправляет на соответствующий контроллер в зависимости от того, существует ли пользователь, но безрезультатно:
def login_or_register
params[:user] = params[:user_session]
if User.find_by_email(params[:user][:email])
redirect_to :controller => "user_sessions", :action => "create"
else
redirect_to :controller => "users", :action => "create"
end
end
Затем я попытался создать нового пользователя, если он не существует со страницы user_sessions/new
(внутри контроллера UserSessions
). Аналогичным образом я попытался , а не , создать нового пользователя и затем автоматически войти в систему с контроллера Users
. Ни один из этих подходов не сработал, и в настоящее время я вернул свой код, поэтому у меня нет примеров, которые я использовал.
Любая помощь или совет будет принята с благодарностью ... большое спасибо!
-Z