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 回答