私は多くのRailsモデルを持っていますが、それぞれhas_one :myobj
. 実行時に、これらの関連付けごとに外部キーが何であるかを判断できるようにしたいと考えています。これは可能ですか?
この質問を複製しようとしているわけではありません。特定のモードのデフォルトの外部キーではなく、特定のモデルの観点からの外部キーが必要です。
私は多くのRailsモデルを持っていますが、それぞれhas_one :myobj
. 実行時に、これらの関連付けごとに外部キーが何であるかを判断できるようにしたいと考えています。これは可能ですか?
この質問を複製しようとしているわけではありません。特定のモードのデフォルトの外部キーではなく、特定のモデルの観点からの外部キーが必要です。
メソッドreflect_on_associationを探している可能性があります。
次のようなモデルの場合:
class Foo < ActiveRecord::Base
has_one :myobj, foreign_key:'myobj_id', class_name:'Bar'
end
メソッドを実行すると、次のようになります。
1.9.3-p194 :001 > pp Foo.reflect_on_association(:myobj)
#<ActiveRecord::Reflection::AssociationReflection:0x96669f4
@active_record=
Foo(id: integer, name: string, created_at: datetime, updated_at: datetime),
@collection=false,
@macro=:has_one,
@name=:myobj,
@options={:foreign_key=>"myobj_id", :class_name=>"Bar"},
@plural_name="myobjs">