Ruby on rails 4 搜索和排序不适用于某些属性
搜掠搜索在某些属性下工作正常:Ruby on rails 4 搜索和排序不适用于某些属性,ruby-on-rails-4,activerecord,spree,ransack,Ruby On Rails 4,Activerecord,Spree,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".*
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.回调是我在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>
Spree::Callback.first
Spree::回调加载(1.4ms)按“Spree\u回调”顺序从“Spree\u回调”中选择“Spree\u回调”。“id”ASC限制1
=> #
@nuT707-要使用ransack gem进行搜索,您首先必须将所有要执行搜索的字段列为白名单。
因此,在您的callback.rb
model中添加以下行-
self.whitelisted\u ransackable\u属性|=%w[手机]
现在试着用搜身搜索
希望这对您有所帮助。
self.whitelisted\u ransackable\u attributes | |
Hi@nuT707self.whitelisted\u ransackable\u attributes |
这将只在白名单数组之前不存在的情况下将phone
添加到白名单数组中|
此ruby或运算符,例如a=[1,2,3]a |=[2,4]=>[1,2,4],如您在此处使用的记忆| |=
是用于记忆的用户,例如a=[1,2,3]a |=[2,4]=>[1,2,3]我收到的是true,而不是arrayself.whitelisted_ransackable_属性=%w[手机]
工作正常