1

假设一个典型的 has_many 关联

class Customer < ActiveRecord::Base
  has_many :orders
end

class Order < ActiveRecord::Base
  belongs_to :customer
end

如何向订单集合添加方法?为了代码组织,我试图在我的Customer类中反应这个方法(这是一个虚构的例子):

def update_orders
  ThirdPartyAPI.look_up(self.orders) do |order|
    # Do stuff to the orders
    # May need to access 'self', the Customer...
  end
end

我不喜欢这样,因为它Order在我的Customer课堂中加入了很多关于课堂的知识。我不能使用订单的实例方法,因为 ThirdPartyAPI 可以对多个订单进行批量查找。我可以制作一个静态方法Order并传入订单数组及其父客户,但这感觉很笨拙。

我在rails docs中找到了这个,但我找不到任何关于如何在实践中使用它的好例子。还有其他方法吗?

4

1 回答 1

6

我认为这应该这样做

has_many :entities do
  def custom_function here

  end

  def custom_function here

  end 
end
于 2012-05-02T16:50:30.523 回答