我在關注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" />
是否有任何猜測爲什麼這個前綴發生?