2011-06-11 99 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」