鉴于这种类设置:导轨 - 确定什么一个对象的属性是由一个二传手
class MyModel < ActiveRecord::Base
belongs_to :association1
belongs_to :association2, :polymorphic => true
end
我知道,当我设置association1,它设置association1_id到对象的ID 1
m = MyModel.new
m.association1 = object1
#<MyModel id: nil, association1_id: 1, association2_id: nil, association2_type: nil>
我知道,当我设置association2,它集association2_id和association2_type
m.association2 = object2
#<MyModel id: nil, association1_id: 1, association2_id: 2, association2_type: 'ClassType'>
我的问题是:
是否有一个函数可以很容易地告诉我什么信息以散列形式设置在一个对象上?
MyModel.magic_function(:association1, object1)
# returns {:association1_id => 1}
MyModel.magic_function(:association2, object2)
# returns {:association2_id => 2, :association2_type => 'ClassType'}
这种情况可能已经编辑你的问题,而不是答案。 – 2012-03-21 01:06:59