Rails - БД Отношения - PullRequest
       2

Rails - БД Отношения

0 голосов
/ 27 марта 2012

Допустим, у меня есть база данных Car and Driver, но для некоторых записей нет драйвера для автомобиля.Как мне отобразить отношение?

Вот код, который я получил, и он вызывает ошибку "NoMethodError: неопределенный метод` each "для nil: NilClass"

class Car < ActiveRecord::Base 
  has_one :driver, :foreign_key  => :dr_code, :primary_key  => :ca_master_code
end

class Driver < ActiveRecord::Base
  belongs_to :car, :foreign_key  => :dr_code, :primary_key  => :ca_master_code
end

Пожалуйста, сообщите.

Ответы [ 2 ]

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

Предполагается, что nil в этом случае означает, что там нет драйвера. Это не проблема дизайна БД.

Если автомобиль без водителя является допустимым делом (в отличие от ошибки при создании записей), тогда просто обработайте дело nil.

0 голосов
/ 27 марта 2012

На самом деле, Rails делает это прекрасно. Я предполагаю, что вы звоните each на car.driver. Поскольку в автомобиле НЕ установлен водитель, car.driver означает nil и nil.each barfs.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...