概要
掲題の通りハマったので自分のためのメモも兼ねて記載しておきます。
前提
店舗とそこに紐づく店員を表現するアプリを作るとします。
親をshop,子をclerkというテーブル名で作成します。
そして子要素経由で、親要素の名前やIDにアクセスする際にはactive recordのjoinやreferencesではデータが取得できません。
なので以下のように別のリレーションとして設定してあげて取得できるようにしてあげてください。
親クラス shop
class Shop < ActiveRecord
acts_as_paranoid
end
子クラス clerk
class Clerk < ActiveRecord
acts_as_paranoid
belongs_to :shop
belongs_to :with_deleted_shop, -> { with_deleted }, class_name: 'Shop', foreign_key: :shop_id, inverse_of: :Shop
end
上記のように論理削除を含めたら親/子要素とのリレーションを指定してあげる事で、情報が取得できるようになります。
そもそも論理削除の導入にはかなり慎重になった方がいいと思います、、、