вторичный ключ datamapper - PullRequest
       3

вторичный ключ datamapper

0 голосов
/ 13 января 2010

Я использую datamapper в приложении ruby ​​и столкнулся с проблемой, которую не понимаю.

У меня есть модель квартиры и модель местоположения. Квартира находится в определенном месте, и несколько квартир могут быть в одном месте. Обычно это описывает отношение 1-n (я думаю :-))

Мне кажется, что в таблице Appartement sql мне нужен location_id, но я не хочу указателей Appartment в таблице Location. Для меня Местоположение должно жить самостоятельно и не должно ссылаться на квартиру.

В классе Appartement ruby ​​я добавил:

has n, Location

но затем он создает appartment_id в классе Location ruby, который мне не нужен.

У вас есть какие-нибудь подсказки?

Большое спасибо, Люк

Ответы [ 2 ]

1 голос
/ 25 марта 2010

Я бы просто сказал

class Apartment
  belongs_to :location
end

class Location
  has n, :apartments
end

это позволит вам ссылаться на @ apartment.location и @ location.apartments

1 голос
/ 13 января 2010

Это отношение один-ко-многим, но для модели местоположения, а не для квартиры. Это означает, что в Location может быть много квартир, и это то, что вы хотите, поэтому модель квартиры будет иметь location_id. Вы сказали Datamapper, что у вашей квартиры много расположений, поэтому она добавила appartment_id в Location.

Чтобы исправить это, вы можете добавить:

has n, Appartment

в классе Location.

Я вообще не знаю datamapper, но в Rails вы можете определить его в обеих моделях. В Appartment вы определяете что-то вроде:

belongs_to Location

и в Location вы добавляете что-то вроде моего первого примера.

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