Rails在登陆页面上注册以完成注册

时间:2012-12-03 02:28:52

标签: ruby-on-rails devise simple-form

我有一个家庭登陆页面,这是我的根网址。我希望用户在这里开始注册过程,他们只输入他们的电子邮件,点击注册,然后在单独的页面上继续注册。

这是我想要在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" %>

我正在使用设计,我在如何处理这个方面遇到了麻烦。谢谢参观。

1 个答案:

答案 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