module RansackerTranslator
Constants
- VERSION
Public Instance Methods
ransacker_translate(*columns)
click to toggle source
指定したカラムでPostgreSQLのTRANSLATE関数を用いて変換をかけた上で検索を行う設定を行う
@param [Array<Symbol>] *columns カラム名の配列 @return [Void]
# File lib/ransacker_translator/models/concerns/ransacker_translator.rb, line 13 def ransacker_translate(*columns) columns.each do |column| ransacker :"#{column}_translate", formatter: proc {|v| NKF.nkf('-w -XZ0', v.mb_chars) } do |parent| single_byte_char = '-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz !#$%&¥;:' double_byte_char = '-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz !#$%&¥;:' Arel::Nodes::NamedFunction.new("UPPER", [Arel::Nodes::NamedFunction.new("TRANSLATE", [parent.table[column], double_byte_char, single_byte_char].map { |it| Arel::Nodes.build_quoted(it) }) ]) end end end