2011-12-14 76 views
0

我在關注Ryan Bates' Multistep Forms cast,但我的參數前綴爲「user_」。因此,密碼變爲user_password等。在用戶創建期間,teamname屬性不會被驗證。我想這是由於user_前綴,我想這是由於deep_merge由於其默認的前綴或使用「user_params」,並試圖添加「{:knockout_prefix =>'user_'}」,但它沒有工作。「user_」參數的前綴可以防止表單驗證

users/new.html.erb以例程「<%= form_for @user do | f |%>開頭」,幷包含「<%= render」#{@user.current_step}_step「,:f = > f%>「。這些步驟包括諸如「<%= f.text_field:email%>」,而不是「user_email」或其他任何字段。

users_controller.rb包含創建函數:

def create 
    session[:user_params].deep_merge!(params[:user]) if params[:user] 
    @user = User.new(session[:user_params]) 
    @user.current_step = session[:user_step] 
    [email protected](rest of the code omitted) 
end 

型號/ user.rb包含:

attr_accessible :email, :password, :password_confirmation 
    ..several validation codes according to steps.. 

和網頁源:

<input id="user_password" name="user[password]" size="30" type="password" /> 

是否有任何猜測爲什麼這個前綴發生?

回答