所以我試圖建立一個註冊過程就像Twitter了。這意味着,有一個預先註冊的表單,可以從第一個表單中導入帶有自動填充字段的完整表單。我試圖在最終形式中使用:value => @name
來創建它,但它不起作用,我只是無法弄清楚原因。自動填充註冊表單與從預註冊表單參數不工作
這是我的代碼,簡化了:
第一形式中,控制器:public_controller,動作:指數(root_path)
<%= form_tag({:controller => "users", :action => "register"})%>
<input name="user[name]" type="text" />
<input name="user[email]" type="text"/>
<input name="user[password]" type="password"/>
<input name="commit" type="submit" value="Sign Up!" />
第二形式中,控制器:users_controller,動作:註冊(/註冊)
<%= form_for(:user, :url => { :controller => 'users', :action => 'create' }) do |f| %>
<%= f.text_field :name, :value => @name %>
<%= f.text_field :email, :value => @email %>
<%= f.password_field :password, :value => @password %>
<input name="commit" type="submit"
value="Sign Up!" />
<% end %>
Users_co ntroller
def register
@name = params[:name]
@email = params[:email]
@password = params[:password]
end
的PARAMS被傳遞到最終形式頁(/註冊)
{ 「UTF8」=> 「✓」, 「authenticity_token」=> 「R3wVNHvqpDBi1Lg69lwKu4NeQGjA12oV/Aytw38OeHc =」, 「user」=> {「name」=>「Stackoverflow」,「email」=>「[email protected]」,「password」=>「stacker」,「password_confirmation」=>「stacker」}, =>「註冊!」,「搜索」=>「」,「控制器」=>「用戶」,「動作」=>「註冊」}
但他們不autopopulating最終形式的領域。
我也試過使用:input_html => { :value => @name }
與params[:name]
,但它沒有效果,輸入的值簡單地變成value =「nil」。
我只是想不出別的辦法來嘗試從這裏。有任何想法嗎?提前致謝!任何幫助是極大的讚賞!
它應該工作,你檢查了'註冊'行動中的'params'哈希? – vee
是的,沒關係。我終於實際上通過在最終的表單中對來自'register' action的變量進行處理並且僅僅去掉::value => params [:user] [:name]和params [:user] [:email]'來工作。不知道爲什麼它不能以其他方式工作,但我想這是做同樣的工作。不過,非常感謝您的關注。 – Kasperi