2011-06-11 119 views
0

我有什么似乎是非标准注册过程:导轨 - 验证两种形式

[欢迎!输入您的电子邮件和密码] => [很酷,输入更多信息] => [已注册]

我遇到问题让导轨识别出我只想验证第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 

=

一旦他们点击注册,他们会看到我的下一页表单域。

我遇到的问题是我validates_presence_of在这两个页面上,在用户模型中的字段。由于这些字段不在欢迎页面上,因此在提交欢迎页面时出现“未定义的本地变量或方法”错误。例如,I validates_presence_of:title,因为我希望标题是必需的,但仅在第2页上列出,因此第1页未正确验证。

关于如何处理这个问题的想法?

谢谢。

回答

0

查看其中一个插件/宝石,您可以在其中创建基于向导的表单。我最喜欢的是“ActsAsWizard”