0
Ransack 보석을 사용하여 모델의 검색 양식을 설정하고 있습니다. 모델에는 문자열로 저장된 :size
필드가 있습니다. "lte and gte"를 사용하여 비교 검색을하고 싶습니다. 어떻게 ransack으로 검색 할 때이 필드를 정수로 형변환 할 수 있습니까?Ransack in Rails에서 정수로 검색 문자열
Ransack 보석을 사용하여 모델의 검색 양식을 설정하고 있습니다. 모델에는 문자열로 저장된 :size
필드가 있습니다. "lte and gte"를 사용하여 비교 검색을하고 싶습니다. 어떻게 ransack으로 검색 할 때이 필드를 정수로 형변환 할 수 있습니까?Ransack in Rails에서 정수로 검색 문자열
문자열의 길이를 반환하는 간단한 메서드를 설정해 보았습니까?
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
어떻게 도움이 될지 모르겠습니다. "5"의 길이는 1이고, "9"의 길이도 1입니다. – GSto
Ah. 그래서 당신은 실제로 문자열을 서로 비교하지 않고 숫자를 가지고 있습니다. 귀하의 질문에서 그것을 잡지 않았다. – tehfailsafe
일반적인'lteq'와'gteq'를 사용할 수없는 이유가 있습니까? ' "5"< "1" => false'는 문자열로도 올바르게 반환되어야합니다. int로 변환 할 필요가 없습니다. – tehfailsafe