Ransack: Как использовать существующий прицел?
Преобразуя приложение Rails 2 в Rails 3, я должен заменить гемsearchlogic, Теперь, используя Rails 3.2.8 с гемомразграбить Я хочу построить форму поиска, которая использует существующую область видимости. Пример:
class Post < ActiveRecord::Base
scope :year, lambda { |year|
where("posts.date BETWEEN '#{year}-01-01' AND '#{year}-12-31'")
}
end
Насколько я знаю, это может быть достигнуто путем определения обычаяграбитель, К сожалению, я нене найти никакой документации по этому поводу. Я попробовал это вPost
учебный класс:
ransacker :year,
:formatter => proc {|v|
year(v)
}
Но это не работает
Post.ransack(:year_eq => 2012).result.to_sql
=> TypeError: Cannot visit ActiveRecord::Relation
Я попробовал некоторые вариантыransacker
декларация, но ни одна из них не работает. Мне нужна помощь...
ОБНОВИТЬ: Объем выше только на примере. Я'Я ищу способ использовать каждую существующую область в Ransack. В MetaSearch, предшественнике Ransack, есть функция, которая называетсяsearch_methods
для использования областей. Ransack имеетнет поддержки для этого из коробки еще.