协会的确切目的是什么?我理解关系的含义以及何时使用每种类型,例如:
belongs_to, has_many, has_one , has_and_belongs_to_many, ect
但是我不明白他们在轨道内如何连接东西的目的是什么。任何输入将不胜感激。谢谢!
答案 0 :(得分: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
所以它基本上就像元编程你的对象一样,需要找到其他相关对象,更新它们的集合等所需的方法。