模型如何引用这些列?

时间:2016-06-16 23:25:38

标签: ruby-on-rails-4

我是Ruby on Rails的新手。我不明白模型中编写的方法是如何工作的。例如。

class Order < ActiveRecord::Base
  has_many :line_items, dependant: :destroy

  def add_line_items_from_cart(cart)
    cart.line_items.each do |item|
         line_items << item
    end
  end
end

我不明白这里是如何引用line_items的。 line_item不是Order表的列,那么line_items&lt;&lt;项目工作。

P.S。 - 这个例子来自RoR书。

1 个答案:

答案 0 :(得分:0)

line_items工作,因为您在LineItem表中有一个order_id列。 Rails使用相应的order_id查询该表的任何行项目,并将它们作为集合返回(实际上是ActiveRecord::Associations::CollectionProxy)。你可以在这里阅读更多相关信息http://edgeapi.rubyonrails.org/classes/ActiveRecord/Associations/CollectionProxy.html