2014-08-31 39 views
1

協會的確切目的是什麼?我明白什麼關係意味着以及何時使用每種類型,例如:Rails協會。他們如何工作?

belongs_to, has_many, has_one , has_and_belongs_to_many, ect 

但我不太明白他們在如何軌內的連接物聯網方面起什麼作用。任何輸入將不勝感激。謝謝!

回答

3

你稱之爲「關聯」我稱之爲「宏」。也就是說,belongs_to,has_many等宏只是在你的ActiveRecord對象上調用的類方法,當被調用時,這些對象會根據關聯名稱定義一堆功能。

所以,你問的是:這些宏方法定義了什麼功能?該答案就在於對每種方法的Rails文檔中:

而且,甚至更多,你應該ActiveRecord::Associations::ClassMethods閱讀整個文檔。

但是,簡而言之,這些宏定義方法的名稱基於您傳遞給它們的關聯名稱。因此,舉例來說:

belongs_to :my_object 

將定義,作爲一個大大簡化的例子:

def my_object 
    MyObject.find_by_id(my_object_id) 
end 

所以基本上如:元編程的對象,必須找到其他的,相關對象所需的方法,更新他們的收藏,等等。