Простая проблема ассоциации базы данных в рельсах - PullRequest
1 голос
/ 26 июня 2011

Разработчик рельсов для новичков здесь.

У меня возникла проблема при попытке установить очень простые ассоциации баз данных в новом проекте rails.

В моей базе данных есть две таблицы, одна называется "Игры", а другая - "Онлайн". Вот что в них сейчас

Game.first
#<Game id: 1, name: "Game 1", description: "This is a cool game", url: "http://domain.com">

Online.first
#<Online id: 1, game_id: 1, now: 222>  

Я пытаюсь настроить простую ассоциацию, чтобы я мог получить количество пользователей в сети, выполнив что-то вроде ...

Game.find(1).onlines.now 

В моих моделях game.rb и online.rb у меня есть

belongs_to :online 

и

belongs_to :games

соответственно.

Когда я пытаюсь запустить Game.find (1) .onlines.now в консоли rails, я получаю следующую ошибку.

NoMethodError: undefined method `onlines' for #<Game:0x00000101654300>
from /Users/Jon/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/gems/activemodel-3.0.6/lib/active_model/attribute_methods.rb:367:in `method_missing'
from /Users/Jon/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/gems/activerecord-3.0.6/lib/active_record/attribute_methods.rb:46:in `method_missing'
from (irb):5
from /Users/Jon/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/gems/railties-3.0.6/lib/rails/commands/console.rb:44:in `start'
from /Users/Jon/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/gems/railties-3.0.6/lib/rails/commands/console.rb:8:in `start'
from /Users/Jon/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/gems/railties-3.0.6/lib/rails/commands.rb:23:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'

Я что-то упускаю из этого смехотворно очевидного? Я перепробовал все, что мог придумать.

1 Ответ

4 голосов
/ 26 июня 2011

Вы должны иметь

has_many :onlines

в вашей игровой модели, а не belongs_to.

...