我有一些简单的模型:
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
我仍然没有决定哪一个更好(两者都做同样的)