Как сделать объект свойством модели в Ruby on Rails? - PullRequest
1 голос
/ 24 марта 2012

У меня есть это в моей схеме:

create_table "robots_matches", :force => true do |t|
t.integer  "robot_id"
t.integer  "match_id"

и я думаю, что хочу иметь возможность загружать робота и сопоставлять его из моей модели robots_match, чтобы я мог сделать что-то вроде этого: robots_match.find (: идентификатор) .get_robot () Имя

.

Моя попытка в модели robots_matches была такой:

def get_robot
Robot.find(this.id)
end

Я очень новичок в рельсах, поэтому не стесняйтесь исправить мое архитектурное решение здесь.

1 Ответ

1 голос
/ 24 марта 2012

Я бы посоветовал начать с моделей ниже.
Это позволяет совпадению иметь много роботов, а также роботу иметь много совпадений через 'Linker'.
Тогда вы можете делать запросы, такие как Robot.find(1).matches или Match.find(1).robots

class Robot < ActiveRecord::Base
  has_many linkers
  has_many matches, :through => linkers

class Linker < ActiveRecord::Base
  belongs_to :robots
  belongs_to :matches

class Match < ActiveRecord::Base
  has_many linkers
  has_many robots, :through => linkers
...