Ransack 搜索和排序不适用于某些属性

Ransack search and sorting not working with some attributes

Ransack 搜索在某些属性下工作正常:

Spree::Callback.all.ransack(name_cont: 1).result

SELECT "spree_callbacks".* FROM "spree_callbacks" WHERE ("spree_callbacks"."name" ILIKE '%1%')

并且不要与他人合作...

Spree::Callback.all.ransack(phone_cont: 1).result

SELECT "spree_callbacks".* FROM "spree_callbacks"

怎么了?

P.S。 Callback是我在Spree模块下的自定义模型

回调对象示例:

Spree::Callback.first
  Spree::Callback Load (1.4ms)  SELECT  "spree_callbacks".* FROM "spree_callbacks"  ORDER BY "spree_callbacks"."id" ASC LIMIT 1
=> #<Spree::Callback:0x00000009eb68c0 id: 39, 
phone: "123", 
comment: "", 
created_at: Wed, 12 Jul 2017 03:37:03 UTC +00:00, 
updated_at: Wed, 12 Jul 2017 03:41:34 UTC +00:00, 
name: "123", 
processed: true>

@nuT707 - 为了能够使用 ransack gem 进行搜索,您首先必须将要执行搜索的所有字段列入白名单。 所以在你的 callback.rb 模型中添加以下行 -

self.whitelisted_ransackable_attributes |= %w[phone]

现在试着用 ransack 搜索。

希望对您有所帮助。