У меня есть то, что кажется нестандартным процессом регистрации:
[Добро пожаловать! введите свой адрес электронной почты и пароль] => [круто, введите гораздо больше информации] => [зарегистрирован]
У меня проблемы с тем, чтобы заставить рельсы распознать, что я хочу подтвердить только адрес электронной почты и пароль на странице 1, а все остальное - на странице 2.
Когда пользователь заходит на сайт, он видит мою страницу приветствия:
class WelcomeController < ApplicationController
def index
@user = User.new
end
end
<%= form_for(@user) do %>
<div class="formItem">
<%= label_tag(:email, "Your email address:") %>
<%= text_field(:user, :email) %>
<br clear="all" />
</div>
<div class="formItem">
<%= label_tag(:password, "Select a password:") %>
<%= password_field_tag(:password) %>
<br clear="all" />
</div>
<%= submit_tag("Sign up today - it's free and easy!", :class => "submitForm") %>
<% end %>
=
class UsersController < ApplicationController
def create
@user = User.new(params[:user])
if @user.save
redirect_to(edit_user_path(@user, :noticeHeader => true ), :notice => 'Please take a minute and answer these additional questions.')
else
render :action => "welcome/index"
end
end
=
Как только они нажимают «Зарегистрироваться», они видят мою следующую страницу полей формы.
Проблема, с которой я сталкиваюсь, заключается в том, что я проверяю поля_presence_of, которые находятся на обеих страницах в пользовательской модели. Поскольку эти поля отсутствуют на странице приветствия, при отправке страницы приветствия возникает ошибка « неопределенная локальная переменная или метод ». Например, я validates_presence_of: title , потому что я хочу, чтобы заголовок был обязательным, но он указан только на странице 2, поэтому страница 1 не проверяется должным образом.
Мысли о том, как справиться с этим?
Спасибо.