我应该在哪里放畅销书?方法 - 在模型或其他地方?

时间:2015-07-04 13:00:07

标签: ruby-on-rails-4 coding-style

我有一些简单的模型:

class Product < ActiveRecord::Base
  has_many :categories
end

现在我想检查一些服务,如果产品是畅销产品并采取其他措施:

class ProductService
  def remind
    Product.all.each do |product|
      puts product unless bestseller?
    end
  end
end

那么现在放置bestseller?方法的最佳位置是什么 - 在模型内部或在服务中作为私有方法? 将来它可能会用于其他一些服务或行动。 你认为这个模型适合放在那里吗? 畅销书方法示例(畅销书是通过添加到类别&#39;畅销书&#39;:

来手动挑选的
def bestseller?(product)
  product.categories.include?(BESTSELLER_CATEGORY_ID)
end

def bestseller?(product_id)
  Category.find(BESTSELLER_CATEGORY_ID).products.include?(product_id)
end

我仍然没有决定哪一个更好(两者都做同样的)

0 个答案:

没有答案