我有一个家庭登陆页面,这是我的根网址。我希望用户在这里开始注册过程,他们只输入他们的电子邮件,点击注册,然后在单独的页面上继续注册。
这是我想要在home-root-landing-page
上的表单的一部分<div>
<%= f.label :email %><br />
<%= f.email_field :email %>
</div>
这就是完整(单独)注册页面的样子。我希望用户在home-root-landing-page上输入的电子邮件地址自动填充在此页面上(在他们点击注册后重定向到此页面。)
<h2>Sign up</h2>
<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
<%= devise_error_messages! %>
<div><%= f.label :first_name %><br />
<%= f.text_field :first_name %></div>
<div><%= f.label :last_name %><br />
<%= f.text_field :last_name %></div>
<div><%= f.label :profile_name %><br />
<%= f.text_field :profile_name %></div>
<div><%= f.label :email %><br />
<%= f.email_field :email %></div>
<div><%= f.label :password %><br />
<%= f.password_field :password %></div>
<div><%= f.label :password_confirmation %><br />
<%= f.password_field :password_confirmation %></div>
<div><%= f.submit "Sign up" %></div>
<% end %>
<%= render "devise/shared/links" %>
我正在使用设计,我在如何处理这个方面遇到了麻烦。谢谢参观。
答案 0 :(得分:2)
在您的视图中,您要在首页中进行渲染,请将form
操作设置为注册页面/user/signup
。
在注册控制器中,使用您从主页收到的参数初始化@user
。
#UsersController
def signup
@user = User.new(params[:user]
end
以上操作将呈现signup
视图。现在在form_for
中使用@user。像:
form_for(@user)
这将自动填充名字和电子邮件。
然而,很明显你正在使用Devise。我不确定它是否适用于其默认控制器,因为它是从空哈希启动资源(我在源代码中看到以下代码)
def new
resource = build_resource({})
respond_with resource
end
所以,你可能需要override the registration controller。