按 'created_at' 字段对 Spree 管理面板中的产品进行排序
Sorting products in Spree admin panel by 'created_at' field
我正在尝试在我的 Spree 管理面板的 'Products' 选项卡中显示附加列 (created_at
)。我已经使用类似于 the standard name
and master price
columns 的污损来完成它。将带有 sortable link 的 header 添加到 table 的污损看起来像这样:
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>
"
)
我可以点击 "CREATED AT" link 然后被查询的 url 是
http://localhost:3000/admin/products?q%5Bdeleted_at_null%5D=1&q%5Bs%5D=created_at+asc
但是,我在控制台中看不到 SQL 查询,它将按 created_at
排序产品(而按名称排序会产生 SQL 按名称排序的查询)和管理面板中的结果确实似乎未分类。
为什么我的解决方案不起作用?
编辑:
我尝试了 spree_products
table 中的每个字段,唯一适用于此污损覆盖的字段是 name
和 slug
。这个东西靠什么?
我解决了这个问题。我发现 Spree::Product
模型中有类似 whitelisted_ransackable_attributes
的东西,它只有 slug
属性。我已经在装饰器中覆盖了它:
Spree::Product.class_eval do
self.whitelisted_ransackable_attributes = %w[slug created_at]
end
我正在尝试在我的 Spree 管理面板的 'Products' 选项卡中显示附加列 (created_at
)。我已经使用类似于 the standard name
and master price
columns 的污损来完成它。将带有 sortable link 的 header 添加到 table 的污损看起来像这样:
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>
"
)
我可以点击 "CREATED AT" link 然后被查询的 url 是
http://localhost:3000/admin/products?q%5Bdeleted_at_null%5D=1&q%5Bs%5D=created_at+asc
但是,我在控制台中看不到 SQL 查询,它将按 created_at
排序产品(而按名称排序会产生 SQL 按名称排序的查询)和管理面板中的结果确实似乎未分类。
为什么我的解决方案不起作用?
编辑:
我尝试了 spree_products
table 中的每个字段,唯一适用于此污损覆盖的字段是 name
和 slug
。这个东西靠什么?
我解决了这个问题。我发现 Spree::Product
模型中有类似 whitelisted_ransackable_attributes
的东西,它只有 slug
属性。我已经在装饰器中覆盖了它:
Spree::Product.class_eval do
self.whitelisted_ransackable_attributes = %w[slug created_at]
end