2011-03-18 70 views
0

我有兩個ActiceRecord類:如何找到對象關聯的類?

class A < ActiveRecord::Base 
    has_one :b 
end 

class B < ActiveRecord::Base 
    belongs_to :a 
end 

如何確定到其中B相關當A和B之間的關聯是唯一例如初始化爲對象在運行時?

我期待這樣的事情:

b.association => A 

回答

2

我不知道這是否會幫助你,但

B.reflections 

...會給你的職業等級協會的哈希值。你可以通過這些過濾。

例如:

class Datastream < ActiveRecord::Base 
    belongs_to :dashboard 
end 

Datastream.reflections 
# outputs: {:dashboard=>#<ActiveRecord::Reflection::AssociationReflection:0x00000100e21ef8 @macro=:belongs_to, @name=:dashboard, @options={}, @active_record=Datastream(id: integer, dashboard_id: integer, position: integer, feed_id: string, stream_id: string, created_at: datetime, updated_at: datetime), @collection=false>} 
+0

是的,這是我一直在尋找的。萬分感謝! – auralbee 2011-03-18 14:27:18

1

真髒方式:

`cat app/models/b.rb | grep 'belongs_to'`.gsub("belongs_to ", "") 

只要避免使用動態數據,以避免:

; rm -rf * 

被插在那裏。 ...

+0

哈哈哈,棘手:)),但我喜歡它。 – 2011-03-18 13:14:42