Я использую связанные области с DataMapper. Ассоциация загружается правильно, когда вызывается только одна область, но при добавлении второй области она становится нулевой. Мои отношения принадлежат_ могут быть нулевыми, поскольку они добавляются в модель заказа. Схема обновляется при инициализации, затем я добавляю в ненулевое ограничение.
class Order
include DataMapper:Resource
belongs_to :customer, :required => false
end
# do the migration which creates a new customers table and
# then updates the orders table with the proper customer_id
DataMapper.repository(:default).adapter.select("ALTER TABLE orders ALTER COLUMN customer_id NOT NULL")
# do a lookup
order = Order.get(1) # order.customer_id is null and so is order.customer
orders = Order.all # each order in array has customer not null
orders = orders.all(status: 'HOLD') # each order in array has a null customer