Ruby Rails 为什么我的创建用户无法使用 bcyrpt gem?

Ruby on Rails Why isn't my create user working using bcyrpt gem?

在我的 Ruby on Rails 应用程序中,我刚刚开始尝试包括注册和登录。我首先 运行 脚手架命令:

rails generate scaffold User name:string password_digest:string role:string

然后是rake db:migrate。这一切都很顺利,并为用户创建了所需的文件。在我的 gem 文件中,我安装了 gem 'bcrypt', '~> 3.1.7' gem,然后将以下内容添加到 user.rb 模型中。

User.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

结束

但出于某种原因,当我添加新用户时,我的表单没有保存详细信息,有人可以帮忙吗?

  1. 控制台是否显示错误?请检查一下。
  2. 您是在定义 user_params 吗?