所以我正在尝试建立一个像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,动作:注册(/signup)
<%= 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 %>
用户控制器
def register
@name = params[:name]
@email = params[:email]
@password = params[:password]
end
参数传递到最终表单页面 (/signup)
{"utf8"=>"✓", "authenticity_token"=>"R3wVNHvqpDBi1Lg69lwKu4NeQGjA12oV/Aytw38OeHc=", "user"=>{"name"=>"Stackoverflow", "email"=>"stack@stackstack.com", "password"=>"stacker", "password_confirmation"=>"stacker"}, "commit"=>"Sign Up!", "search"=>"", "controller"=>"users", "action" =>“注册”}
但他们不会自动填充最终表单的字段。
我也尝试过使用:input_html => { :value => @name }
with params[:name]
,但它没有效果,输入的值只是变成了 value="nil"。
我只是想不出从这里可以尝试的其他任何东西。有任何想法吗?提前致谢!任何帮助是极大的赞赏!