[英]Search string as integer with Ransack in Rails
我正在使用Ransack gem來建立模型的搜索表單。 該模型具有一個:size
字段,該字段存儲為字符串。 我想做一個比較搜索“使用LTE和GTE”。 使用ransack搜索時如何將該字段轉換為整數?
您是否嘗試過設置返回字符串長度的簡單方法?
def size_length
size.length
end
然后,您的洗劫可能類似於Model.search(:size_length_lteq => comparison)
嗎?
還有自定義匹配器呢? 不知道這是否行得通,但可能值得一試。
# config/initializers/ransack.rb
Ransack.configure do |config|
config.add_predicate 'string_lteq',
arel_predicate: 'lteq',
formatter: proc { |v| v.length },
validator: proc { |v| v.present? },
type: :string
end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.