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 имеетнет поддержки для этого из коробки еще.

Ответы на вопрос(3)

Ваш ответ на вопрос