我正在尝试使用 ransack 按年龄过滤结果,但 ransack 给了我一个未定义的方法错误。我的数据库中有用户 DOB,在我的用户模型中,我有一个计算用户年龄的年龄方法。它工作得很好,我可以这样称呼用户年龄:
@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