0

嗯,所以我已经为此奋斗了很多天。所以我的目标是像 twitter 一样创建一个注册表单(填写后每个页面上都有一个通用表单,使用完整的表单重定向到 /signup 页面,保留提交的值。)

目前,我的 public_controller 上有通用的简短形式,而 /signup 中的完整形式是 users_controller 的一部分。

我在填写表格后尝试渲染,但我认为这不是答案,因为表格位于不同的控制器上。我也尝试过使用会话和 cookie 来做到这一点,但没有运气。

一些相关的代码,去掉了多余的值:

<%= form_for(:user, :url => { :controller => 'users', :action => 'create' }) do |f| %>
<input name="user[name] />
<input name="user[email] />
<input name="user[password]" />

所以我的通用注册表单中有三个值,:name、:email 和:password。最终形式将有一个值,:username。

我的 user_controller 的 def new 和 def create 老实说现在只是空的,因为我一直在尝试很多不同的东西,我不知道该放什么了。

非常感谢所有帮助,任何方向都非常感谢。

4

1 回答 1

0

您可以将变量从第一种形式设置为第二种形式:

 def controller_first_method
   @name     = params['name']
   @email    = params['email']
   @password = params['password'] <-- hash this before!!
 end

在第二种形式中:

= f.hidden_field :name, :value => @name

您也可以尝试序列化数据:

https://github.com/mrbrdo/serialize-rails

于 2013-08-24T01:50:54.607 回答