ruby-on-rails - Rails 协会。它们是如何工作的?

标签 ruby-on-rails ruby associations has-many

协会的确切目的是什么?我了解关系的含义以及何时使用每种类型,例如:

belongs_to, has_many, has_one , has_and_belongs_to_many, ect

但我不太明白它们在 Rails 中如何连接事物方面的目的。任何输入将不胜感激。谢谢!

最佳答案

你所说的“关联”我会称之为“宏”。也就是说,belongs_tohas_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/

相关文章:

database - 关联表中的主键

Javascript 仅适用于页面上的某些位置

ruby-on-rails - 从表单中保存数据库中的值

ruby-on-rails - 为下一个 API 版本使用不同的 gem 的版本控制

ruby-on-rails - 如何使用 rbhive gem 和查询 hive

mysql - Sql 到 Rails 查询关联、连接和 order_by

ruby-on-rails - 为什么 raise_error 匹配器没有按预期工作?

ruby-on-rails - Rails 日期时间比较

ruby-on-rails - rails : updating to non vulnerable version

ruby-on-rails - 如何确保该表不包含重复项(基于两个外键)?