NoMethodError 名称 FoR user.name

NoMethodError name RoR user.name

已按照 SitePoint

上的教程进行操作

对于一个简单的魔法应用程序。我收到 nil:NilClass

的未定义方法“名称”

迁移

class SorceryCore < ActiveRecord::Migration
  def change
   create_table :users do |t|
      t.string :name
      t.string :email,            :null => false
      t.string :crypted_password
      t.string :salt

      t.timestamps                :null => false
    end

    add_index :users, :email, unique: true
  end
end

/home/david/Magical/app/views/user_mailer/activation_needed_email.html.erb

<p>Welcome, <%= @user.name %>!</p>

<p>To login to the site, just follow <%= link_to 'this link', 
activate_user_url$

<p>Thanks for joining and have a great day!</p>

users.rb

class User < ActiveRecord::Base
  authenticates_with_sorcery!
  validates :password, length: { minimum: 3 }
  validates :password, confirmation: true
  validates :email, uniqueness: true, email_format: { message: 'has 
  invalid format'
End

我走了很长的路回家并克隆了 Github 存储库。起初我收到 'stack level too deep' 错误,但我发现 gem 文件加载了 rails 4.2.1 。 我将其更改为 4.2.10,在教程中进行迁移和小调整后一切顺利。 一路上,我发现 rails_db gem 这是一个非常简单的 gem 用于使用 sqlite。 rails_db gem