在ActiveAdmin中,如何删除搜索词? (删除“steve@example.com”周围的空格)
我正在尝试将其应用于电子邮件字段。
ActiveAdmin.register User do
...
filter :email, # <- I want to strip! this search term
filter :name
filter :address_phone
...
由于
答案 0 :(得分:1)
您可以在这种简单的情况下创建自己的搜索引擎:
<{1>} ActiveRecord模型中的:
User
您的User ActiveAdmin资源中的:
ransacker :stripped_email, formatter: proc { |v| v.strip } do |parent|
parent.table[:email]
end
或filter :stripped_email_cont
https://github.com/activerecord-hackery/ransack/wiki/Basic-Searching#eq-equals
答案 1 :(得分:0)
你可以试试这个
filter :email, :as => :check_boxes, :collection => proc { User.all.collect(&:email).map(&:strip) }
答案 2 :(得分:0)
猴子补丁会做到这一点:类似的事情将适用于“续”查询
module ActiveAdmin
module ResourceController::DataAccess
def apply_filtering(chain)
filter_params = params[:q] || {}
filter_params.update(filter_params) do |key, value|
key.include?("cont") ? value.strip : value
end
@search = chain.ransack(filter_params || {})
@search.result
end
end
end
答案 3 :(得分:0)
使用rails 5.2和active_admin 2.2.0
文件到config/initializers/active_filter.rb
module ActiveAdmin
module ResourceController::DataAccess
def apply_filtering(chain)
filter_params = params[:q] || {}
filter_params.each do |key, value|
filter_params[key] = value.strip if value.class == String
end
@search = chain.ransack(filter_params || {})
@search.result
end
end
end
重新启动服务器...