Допустим, есть модели:
- Subscriber
- Address (subscriber_id)
Они связаны друг с другом (has_many и belong_to)
Для косвенного удаления из базы у каждого есть поле deleted со значениями true или false.
Скоуп по умолчанию deleted: false
Далее, допустим удалили Subscriber и его адресс (deleted: 'true') и хотели обратно вернуть,
для этого делаем так:
subscriber = Subscriber.unscoped.find(777)
И если захотим вытащить адреса таким способом:
subscriber.addresses
- то не получается.
Вот общий код:
class Subscriber < ActiveRecord::Base
default_scope { where(deleted: 'false') }
has_many :addresses
end
class Address < ActiveRecord::Base
default_scope { where(deleted: 'false') }
belongs_to :subscriber
end
Какое решение?