协会的确切目的是什么?我了解关系的含义以及何时使用每种类型,例如:
belongs_to, has_many, has_one , has_and_belongs_to_many, ect
但我不太明白它们在 Rails 中如何连接事物方面的目的。任何输入将不胜感激。谢谢!
最佳答案
你所说的“关联”我会称之为“宏”。也就是说,belongs_to
、has_many
等宏只是在您的 ActiveRecord 对象上调用的类方法,调用时会根据关联名称定义一组功能。
那么,您要问的是:这些宏方法定义了哪些功能?答案就在这些方法的 Rails 文档中:
此外,您还应该阅读有关 ActiveRecord::Associations::ClassMethods 的全部文档.
但是,简而言之,这些宏定义的方法名称基于您传递给它们的关联名称。所以,例如:
belongs_to :my_object
将定义,作为一个大大简化的例子:
def my_object
MyObject.find_by_id(my_object_id)
end
因此,这基本上就像对您的对象进行元编程,使其具有查找其他关联对象、更新其集合等所需的方法。
关于ruby-on-rails - Rails 协会。它们是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25595428/