Rails在主页上的注册表单

时间:2014-02-24 21:38:35

标签: ruby-on-rails

我似乎看到了如何使用devise在主页(static_pages #home)上为用户提供我的注册表单的问题,但是找不到只使用Rails的用户。

我在我的主页上有这个表格:

  <h2>Sign Up</h2>
    <%= form_for(@user) do |f| %>
      <br>

      <%= f.label :email %>
      <%= f.text_field :email %><br>

      <%= f.label :password %>
      <%= f.password_field :password %><br>

      <%= f.label :password_confirmation, "Confirm password" %>
      <%= f.password_field :password_confirmation %><br>

      <%= f.submit "Sign up", class: "btn btn-large btn-primary" %>
    <% end %>

但是,当我提交表单时,用户数据不会被保存(出于某种原因,电子邮件和密码的属性不会从表单条目中获取)。我在home动作中实例化了@user变量,所以我不确定为什么这不起作用。

class StaticPagesController < ApplicationController
    def home
        # For future where sign-up page is on home page.
        @user = User.new
    end
end

任何帮助将不胜感激。谢谢!

2 个答案:

答案 0 :(得分:1)

首先,我会高度推荐使用Devise。处理用户身份验证是一项棘手的工作,尤其是试图保证安全。

其次,您需要有一个控制器操作才能保存用户。类似的东西:

class StaticPagesController < ApplicationController
  def create
    @user = User.new(params[:user])
    @user.save!
  end
end

然后将正确的路线添加到config/routes.rb文件中。

答案 1 :(得分:0)

您可以通过显式向其传递URL来设置表单目标操作,并且必须通过UsersController中的默认#create操作进行操作。

所以你可以和@Judy的回答一起尝试

相关问题