Railsメソッドの外部キーについて
概要
会社を削除したいのですが、モデルにdependent: destroy がありません。 Rails には、どのテーブルが特定の外部キーに接続されているかを知るための ActiveRecord メソッドはありますか?
解決策
ActiveRecord::reflect_on_all_associations と Array#reject を使用すると、:dependent キーなしですべての has_many アソシエーションをフィルタリングできます
Company.
reflect_on_all_associations(:has_many).
reject { |association| association.options[:dependent] }
テーブル名を取得するには、plural_name 属性を使用できます
Company.
reflect_on_all_associations(:has_many).
reject { |association| association.options[:dependent] }.
map(&:plural_name)