このエラーが発生しています:
NameError in GamesController#create
uninitialized constant User::UsersGame
app/controllers/games_controller.rb:43:in `create'
UserGame ではなく UsersGame を参照している理由がわからないため、これは混乱を招きます...
私は物事の名前を変更し、新しいメソッドを削除しようとしました(なぜ new と create の両方が必要なのかまだ混乱していますが、両方が必要であることは理解していると思います)、正しいテーブルがあることを確認するために移行をいじってみました。しかし、私はそれを機能させることができません。ユーザークラスはdeviseで単独で動作するので、問題になることはないと思います。とにかく、以下の関連ファイルがあります。
結合テーブルとしてのモデルの 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