У меня есть две модели, которые связаны друг с другом.Datamapper: Создайте два отношения (имеет n и имеет 1) к той же модели
class User
include DataMapper::Resource
property :id, Serial
has n, :mail_addresses
end
class MailAddress
include DataMapper::Resource
property :id, Serial
property :email, String, :required => true, :unique => true, :format => :email_address
belongs_to :user
end
Теперь я хочу добавить основной адрес электронной почты для пользователя. Таким образом, можно сделать такие вещи, как
some_user.primary_mail_address = some_user.mail_addresses.first
Я пытался сделать что-то вроде этого на модели пользователя, но без удачи.
property :primary_mail_address_id, Integer, required: false
has 1, :primary_mail_address, model: 'MailAddress', parent_key: [:primary_mail_address_id], child_key: [:id]
выше трюк позволяет мне выполнить пример кода, но primary_mail_address_id не будет обновляться, когда я делаю это.
Как это сделать?