我似乎看到了如何使用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
任何帮助将不胜感激。谢谢!
答案 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的回答一起尝试