Ruby on rails NameError:uninitialized constant User::BooksAndUser in通过关联有多个
我似乎在rails 4应用程序中连接了错误的关联。这基本上是我的设置(尽管有点做作) 型号: book.rbRuby 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
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