0

私は多くのRailsモデルを持っていますが、それぞれhas_one :myobj. 実行時に、これらの関連付けごとに外部キーが何であるかを判断できるようにしたいと考えています。これは可能ですか?

この質問を複製しようとしているわけではありません。特定のモードのデフォルトの外部キーではなく、特定のモデルの観点からの外部キーが必要です。

4

1 に答える 1

0

メソッド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">
于 2013-01-24T16:16:54.677 に答える