我试图在'产品'中显示其他列(created_at
)。我的Spree管理面板中的选项卡。我使用类似the standard name
and master price
columns的方式使用了deface。将带有可排序链接的标题添加到表中的界面如下所示:
Deface::Override.new(
virtual_path: 'spree/admin/products/index',
name: 'created_at_column_header_in_products',
insert_before: "[data-hook='admin_products_index_header_actions']"
text: "
<th class='text-center'>
<%= sort_link @search, 'created_at', Spree.t(:created_at) %>
</th>
"
)
我可以点击&#34;创建AT&#34;链接和被查询的网址是
http://localhost:3000/admin/products?q%5Bdeleted_at_null%5D=1&q%5Bs%5D=created_at+asc
但是,我在控制台中看不到SQL查询,它会按created_at
对产品进行排序(按名称排序会产生按名称排序的SQL查询),管理面板中的结果看起来确实没有排序。
为什么我的解决方案不起作用?
编辑:
我尝试了spree_products
表中的每个字段,并且唯一使用此变形覆盖的字段是name
和slug
。这个东西取决于什么?
答案 0 :(得分:2)
我解决了这个问题。我发现whitelisted_ransackable_attributes
模型中有类似Spree::Product
的内容,但它只有slug
属性。我在装饰者中覆盖了它:
Spree::Product.class_eval do
self.whitelisted_ransackable_attributes = %w[slug created_at]
end