应用程序逻辑和 Active Record 示例 Rails

Application logic and Active Record example Rails

我想问两件事:

1) Rails的应用逻辑中,一个Model调用另一个Model是否正确? 换句话说:

class A
  def function1
   ...
  end
end

class B
  def function2
    A.function1
  end
end

这只是一个示例,两个模型之间没有任何关联。

第二个问题是:

2) 当我在 Rails 控制台中调用时: c = Supply.where(product_id: 7) 我有这个结果

我无法拨打电话:c.quantity

如果我使用 c = Supply.find(1) 我可以打电话给 c.quantity

有什么区别?

谢谢大家

把一个模型称为另一个模型是可以的into/from。这是常见的做法。至于第二个问题:

如果您按 ID 查询,请始终使用查找,因为它 returns 是单个对象而不是关系。

#this will work
c = Supply.find(7).quantity

如果使用 where,则需要从结果集中提取单个对象。示例:

# this will work but since you are using where you need to ask for a specific object.
c = Supply.where(product_id: 7).first.quantity