我收到此错误:
NameError in GamesController#create
uninitialized constant User::UsersGame
app/controllers/games_controller.rb:43:in `create'
这令人困惑,因为我不知道它为什么引用 UsersGame 而不是 UserGame ...
我尝试重命名事物,取出新方法(仍然让我感到困惑,为什么 new 和 create 都需要,但我认为我理解它们都需要在那里),并弄乱我的迁移以确保我有正确的表,但我无法让它工作。用户类本身与设计一起工作,所以我认为这不是问题。无论如何,这里是下面的相关文件。
模型中的 users_games.rb 作为连接表
class UserGame < ActiveRecord::Base
belongs_to :user
belongs_to :game
end
模型中的 user.rb
class User < ActiveRecord::Base
has_many :users_games
has_many :games, :through => :users_games
# Include default devise modules. Others available are:
# :token_authenticatable, :confirmable,
# :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
# Setup accessible (or protected) attributes for your model
attr_accessible :email, :password, :password_confirmation, :remember_me
end
模型中的 game.rb
class Game < ActiveRecord::Base
has_many :users_games
has_many :users, :through => :users_games
# has_many :turns, :dependent => :destroy
attr_accessible :name, :creator
end