Я думал, что пытаюсь сделать что-то простое, и немного смущен, почему он не работает - в основном, найти все объекты «Game», содержащие конкретное сообщение (или сообщение).Почему предложение where в ассоциации смотрит на «object_id» и как я могу написать предложение where правильно?
$ Game.where(:message => Message.first)
ActiveRecord::StatementInvalid: SQLite3::SQLException: no such column: games.game_id: SELECT "games".* FROM "games" WHERE "games"."game_id" = 1
$ Game.where(:message => nil)
ActiveRecord::StatementInvalid: SQLite3::SQLException: no such column: games.game_id: SELECT "games".* FROM "games" WHERE "games"."game_id" = 1
$ Game.where(:message => nil).to_sql
=> "SELECT \"games\".* FROM \"games\" WHERE \"games\".\"game_id\" = 1"
Я не очень понимаю, что это возвращается ко мне здесь, хотя - почему это проверка атрибута games.game_id? Как я могу запустить запрос для получения игр с определенным сообщением или без сообщений?
В игровом объекте «has_one» есть сообщение, которое «принадлежит» игровому объекту. Сами отношения прекрасно работают, я просто не могу понять, как сделать предложение where.
Что такое ассоциация у вас есть между '' Game' и модели Message'? –
Можете ли вы разместить свою модель «Игра»? – oreoluwa
Arup, я упомянул ассоциацию в последней строке - сообщение об объекте 'has_one'. – GlyphGryph