鑑於這種類設置:導軌 - 確定什麼一個對象的屬性是由一個二傳手
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