使用预注册表格中的参数自动填充注册表格不起作用

时间:2013-08-24 17:41:48

标签: ruby-on-rails forms params auto-populate

所以我正在尝试像Twitter那样建立一个注册过程。这意味着,有一个预注册表单,可以从第一个表单中获得具有自动填充字段的完整表单。我试图在最终形式中使用:value => @name来创建它,但它不起作用,我无法弄清楚原因。

这是我的代码,简化:

第一种形式,控制器:public_controller,action:index(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,action:register(/ 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 %>

Users_controller

def register
  @name     = params[:name]
  @email    = params[:email]
  @password = params[:password]
end

参数传递到最终表单页面(/ signup)

{“utf8”=&gt;“✓”,“authenticity_token”=&gt;“R3wVNHvqpDBl1Lg69lwKu4NeQGjA12oV / Aytw38OeHc =”,“user”=&gt; {“name”=&gt;“Stackoverflow”,“email”=&gt; “stack@stackstack.com”,“password”=&gt;“stacker”,“password_confirmation”=&gt;“stacker”},“commit”=&gt;“注册!”,“搜索”=&gt;“”, “controller”=&gt;“users”,“action”=&gt;“register”}

但是他们并没有自动填充最终形式的字段。

我也尝试将:input_html => { :value => @name }params[:name]一起使用,但它没有效果,输入的值只是转为value =“nil”。

我想不出别的东西可以试试。有任何想法吗?提前致谢!非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

控制器上的微小疏忽? 不应该是

def register
  @name     = params[:user][:name]
  @email    = params[:user][:email]
  @password = params[:user][:password]
end
但是你最终还是想出来了。

相关问题