Вот что я получил до сих пор:Рельсы ассоциация with_deleted объем не работает с заказом
class MemberSitePosition < ActiveRecord::Base
acts_as_paranoid
belongs_to :member, -> { with_deleted }
belongs_to :position
...
}
class Member < ActiveRecord::Base
include ::Hierarchical
acts_as_paranoid
has_many :member_site_positions
...
}
// Get all member associated to a site with their position
@msps = member_site_positions.includes(:position, { member { profile: :item }}).where(position_id: position_ids, member_id: member_ids)
@msps.each do |msp|
member = msp.member
// ... do stuff with member
end
Этот запрос работы как шарм, я получаю все мой член, связанный всем моем сайте с их положением.
Но когда я попытался заказать их, я получил
@msps = member_site_positions.includes(:position, { member { profile: :item }}).where(position_id: position_ids, member_id: member_ids)
.order("positions.order") // adding the order
@msps.each do |msp|
member = msp.member // Member is nil only if I pass the order (and member is deleted)
end
член, удаляются теперь NIL, когда я пытаюсь получить доступ к ним.
То, что я обнаружил, что, когда я добавляю заказ, генерировать запрос добавить
Left outer join tableX x ON x.id = main_table.x_id AND x.deleted_at IS NULL
Даже где положение, которое говорит, включают x.deleted_at IS NULL OR x.deleted_at IS NOT NULL, так как они будут отклонены в соединении они не включены.
Я использую рельсы 4.2.3 и paranoia 4.2.3 Я попытался проверить конфигурацию и через мгновение обнаружил, что когда я использовал рельсы 4.2.1, он работал нормально. Я хотел бы сохранить рельсы 4.2.3, если это возможно.
Что мне делать для решения моей проблемы? Если у кого-то есть идея, я готов попробовать ее. Благодарим заранее.
Я пытался добавить присоединяется (: позиция), присоединяется (: член) и оба, но результат был тот же
Я попытался изменить
belongs_to :member, -> { with_deleted }
для
belongs_to :member, -> { with_deleted.unscope(where: :deleted_at) }
belongs_to :member, -> { unscope }
но это ничего не меняет