我可以使这个Rails 4命名范围更好

时间:2013-09-19 22:52:44

标签: ruby-on-rails model ruby-on-rails-4 named-scope

如果我没记错的话,我相信这被称为命名范围。无论如何,有没有人知道更好/更有效的编码方式..

这是来自Rails 4模型

 def line_total
   product = Product.find_by_id(self.product_id)
   line_total = self.quantity * product.current_price
   return line_total
 end

2 个答案:

答案 0 :(得分:1)

这不适合作为范围。您定义的方法最有意义。但是这个方法可以简化。

模型是否有定义为Product的关联?像has_one :product这样的东西?如果是这样,该方法可能如下所示:

class Rails4Model < ActiveRecord::Base

  has_one :product

  def line_total
    quantity * product.current_price
  end

end

答案 1 :(得分:1)

 def line_total
   quantity * Product.find(product_id).current_price
 end