【问题标题】:How to display only selected products in Spree?如何在 Spree 中仅显示选定的产品?
【发布时间】:2017-03-15 12:18:03
【问题描述】:

我正在使用 Spree Commerce,现在我添加到后端的每个产品都显示在主页上。有没有一种方法可以让我只在首页上显示我选择的产品,而不是像默认那样显示所有内容?

我知道 deface 允许我自定义所有内容的外观,但这不是我要寻找的答案。

谢谢

【问题讨论】:

    标签: e-commerce spree


    【解决方案1】:

    @elliot 其实很简单。在管理员端转到产品的编辑页面,并为该产品设置discontinue_on,其日期等于当前日期或更短的日期。 只有available_on 小于当前日期且discontinue_on 大于当前日期的产品在前端可见。

    【讨论】:

      【解决方案2】:

      Deface 用于更改视图而不是控制器。从数据库中获取产品是一个控制器逻辑。

      有很多选项,您可以在产品模型中添加自己的范围并覆盖控制器以使用它们,但最快的是使用discontinue_on,因为对于非管理员用户,通常在产品上使用active 范围。

      【讨论】:

        【解决方案3】:

        找到答案:我刚刚在 home_controller_decorator 的索引操作中将 @products = @searcher.retrieve_products 更改为 @products = Product.joins(:variants_include_master).where(:name => "Ruby on Rails Tote").uniq .rb

        【讨论】:

        • 这个解决方案不是一个好主意。您正在硬编码控制器以仅显示具有给定名称的产品(“Ruby on Rails Tote”)。如果您想拥有更干净的解决方案,请在控制器的默认搜索中使用模型中的一些自定义范围。 Spree 默认使用 ransack 来创建查询。
        猜你喜欢
        • 1970-01-01
        • 2023-03-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-06-10
        • 2019-06-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多