【发布时间】:2017-03-15 12:18:03
【问题描述】:
我正在使用 Spree Commerce,现在我添加到后端的每个产品都显示在主页上。有没有一种方法可以让我只在首页上显示我选择的产品,而不是像默认那样显示所有内容?
我知道 deface 允许我自定义所有内容的外观,但这不是我要寻找的答案。
谢谢
【问题讨论】:
标签: e-commerce spree
我正在使用 Spree Commerce,现在我添加到后端的每个产品都显示在主页上。有没有一种方法可以让我只在首页上显示我选择的产品,而不是像默认那样显示所有内容?
我知道 deface 允许我自定义所有内容的外观,但这不是我要寻找的答案。
谢谢
【问题讨论】:
标签: e-commerce spree
@elliot 其实很简单。在管理员端转到产品的编辑页面,并为该产品设置discontinue_on,其日期等于当前日期或更短的日期。
只有available_on 小于当前日期且discontinue_on 大于当前日期的产品在前端可见。
【讨论】:
Deface 用于更改视图而不是控制器。从数据库中获取产品是一个控制器逻辑。
有很多选项,您可以在产品模型中添加自己的范围并覆盖控制器以使用它们,但最快的是使用discontinue_on,因为对于非管理员用户,通常在产品上使用active 范围。
【讨论】:
找到答案:我刚刚在 home_controller_decorator 的索引操作中将 @products = @searcher.retrieve_products 更改为 @products = Product.joins(:variants_include_master).where(:name => "Ruby on Rails Tote").uniq .rb
【讨论】: