Ruby错误(未初始化的常量User :: Relationship)

我是ruby的新手,并试图通过Michael Hartl的http://ruby.railstutorial.org/工作 。 我在第12章并继续发现这个错误

uninitialized constant User::Relationship

这种错误意味着什么? 您认为我的错误可能是什么?

 attr_accessor :password attr_accessible :name, :email, :password, :password_confirmation, :admin has_many :microposts, :dependent => :destroy has_many :relationships, :foreign_key => "follower_id", :dependent => :destroy has_many :following, :through => :relationships, :source => :followed has_many :reverse_relationships, :foreign_key => "followed_id", :class_name => "Relationship", :dependent => :destroy has_many :followers, :through => :reverse_relationships, :source => :follower email_regex = /\A[\w+\-.]+@[az\d\-.]+\.[az]+\z/i validates :name, :presence => true, :length => { :maximum => 50 } validates :email, :presence => true, :format => { :with => email_regex }, :uniqueness => { :case_sensitive => false } validates :password, :presence => true, :confirmation => true, :length => { :within => 6..40 } before_save :encrypt_password def has_password?(submitted_password) encrypted_password == encrypt(submitted_password) end def feed # This is preliminary. See Chapter 12 for the full implementation. Micropost.where("user_id = ?", id) end def following?(followed) relationships.find_by_followed_id(followed) end def follow!(followed) relationships.create!(:followed_id => followed.id) end def unfollow!(followed) relationships.find_by_followed_id(followed).destroy end class << self def authenticate(email, submitted_password) user=self.find_by_email(email) (user && user.has_password?(submitted_password)) ? user : nil end def authenticate_with_salt(id, cookie_salt) user = find_by_id(id) (user && user.salt == cookie_salt) ? user : nil end end private def encrypt_password self.salt = make_salt if self.new_record? self.encrypted_password = encrypt(self.password) end def encrypt(string) string end def encrypt(string) secure_hash("#{salt}--#{string}") end def make_salt secure_hash("#{Time.now.utc}--#{password}") end def secure_hash(string) Digest::SHA2.hexdigest(string) end end 

听起来好像您没有按照清单12.11中的说明更新User模型。

具体来说,请确保您的User类具有以下代码:

 has_many :relationships, :foreign_key => "follower_id", :dependent => :destroy 

您还没有定义relationship_controller.rb代码。 继续完成本章,他确实解释了最终需要做什么。

自己跑到这里。 我没有添加您可以在11.34找到的Relationships控制器(app / controllers / relationships_controller.rb)。 一旦添加,错误就会消失。