簡體   English   中英

在Rails中使用Ransack將字符串搜索為整數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM