Я пытаюсь отфильтровать результаты по возрасту с помощью ransack, но ransack дает мне неопределенную ошибку метода. У меня есть DOB пользователей в моей базе данных, а в модели моих пользователей у меня есть возрастный метод, который вычисляет возраст пользователя. Он отлично работает, и я могу назвать пользователей возраст, как это:Неопределенная ошибка метода для фильтрации по возрасту с использованием Ransack gem
@user = User.find(1)
@user.age
Теперь рыскать я следующий в моем контроллере:
def index
@search = User.search(params[:q])
@users = @search.result
end
На мой взгляд, у меня есть:
<%= search_form_for @search do |f| %>
<%= f.label :age_gteq, "Ages:" %> <%= f.text_field :age_gteq %>
<%= f.label :age_lteq, "to" %> <%= f.text_field :age_lteq %>
<%=f.submit "Filter", class: "button" %>
<% end %>
Это ошибка я получаю:
undefined method `age_gteq' for Ransack::Search<class: User, base: Grouping <combinator: and>>:Ransack::Search
Уверен, что у меня будет такая же ошибка для age_lteq
Вы добавили 'age' в' attr_accessible'? – Zippie
Нет, я этого не делал. Я не был уверен, что должен был, поскольку это метод, а не атрибут пользователя, хранящийся в базе данных. – pratski
извините, но не возраст, а 'age_gteq' и' are_lteq'. Я не уверен, как использовать ransack, но это должно быть подсказка – Zippie