【发布时间】:2015-04-16 02:42:49
【问题描述】:
在我的 Ruby on Rails 应用程序中,我刚刚开始尝试包括注册和登录。我首先运行了脚手架命令:
rails generate scaffold User name:string password_digest:string role:string
然后是rake db:migrate。这一切都很顺利,并为用户创建了所需的文件。在我的 gemfile 中,我安装了 gem 'bcrypt', '~> 3.1.7' gem,然后将以下内容添加到 user.rb 模型中。
用户.rb:
class User < ActiveRecord::Base
validates :name, presence: true, uniqueness: true
has_secure_password
end
并将我的 /views/users/_form.html.erb 编辑为如下所示:
<div class="form1">
<%= form_for(@user) do |f| %>
<div class="field">
<%= f.label :name, 'Name:' %>
<%= f.text_field :name, :autofocus => true %>
</div>
<div class="field">
<%= f.label :password, 'Password:' %>
<%= f.password_field :password , size: 40 %>
</div>
<div class="field">
<%= f.label :password_confirmation, 'Confirm:' %>
<%= f.password_field :password_confirmation, size: 40 %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
</div>
我在 users_controller 中的创建方法:
def create
@user = User.new(user_params)
if @user.save
# login is achieved by saving a user's 'id' in a session variable,
# accessible to all pages
session[:user_id] = @user.id
redirect_to root_path, notice: "#{@user.name} - you have successfully registered."
else
render action: "new"
end
结束
但是由于某种原因,当我添加新用户时,我的表单没有保存详细信息,有人可以帮忙吗?
【问题讨论】:
标签: ruby-on-rails ruby login authorization registration