Ruby on rails NameError:uninitialized constant User::BooksAndUser in通过关联有多个

Ruby on rails NameError:uninitialized constant User::BooksAndUser in通过关联有多个,ruby-on-rails,Ruby On Rails,我似乎在rails 4应用程序中连接了错误的关联。这基本上是我的设置(尽管有点做作) 型号: book.rb class Book < ActiveRecord::Base has_many :books_and_users has_many :users, through: :books_and_users validates :user_id, presence: true end class User < ActiveRecord::Base has_many

我似乎在rails 4应用程序中连接了错误的关联。这基本上是我的设置(尽管有点做作)

型号:

book.rb

class Book < ActiveRecord::Base
  has_many :books_and_users
  has_many :users, through: :books_and_users
  validates :user_id, presence: true
end
class User < ActiveRecord::Base
  has_many :books_and_users
  has_many :books, through: :books_and_users
  validates :name, presence: true
end
class BooksAndUser < ActiveRecord::Base
  self.table_name = "books_and_users"
  belongs_to :book
  belongs_to :user
  validates :user, presence: true
  validates :book, presence: true
end
当我想检查rails控制台中的模型是否正确设置时,我会执行以下操作:

u = User.first
u.books => NameError: uninitialized constant User::BooksAndUser

我做错了什么?

重命名
book\u和\u user.rb
books\u和\u user.rb

尝试更改
books\u和\u users
中的
关联
book
以这样指定类名:
有很多:books\u和\u users,类名:“BooksAndUser”
我认为您在
书籍和用户
中的
表名
规范可能是必要的。试着去掉那条线。另外,你忘记分享你的
书的代码了
模型-你在帖子中两次分享了
书和用户
模型。@Humza我做了所有这些,但仍然得到同样的错误:-(错误是否告诉您错误在哪一行?
from/Library/Ruby/Gems/2.0.0/Gems/activerecord-4.0.8/lib/active\u record/inheritation.rb:129:in compute\u type
是第一行,但它没有说明我的代码。似乎是大多数内置回调
u = User.first
u.books => NameError: uninitialized constant User::BooksAndUser