1

ransack を使用して年齢で結果をフィルタリングしようとしていますが、ransack によって未定義のメソッド エラーが発生します。データベースに Users DOB があり、ユーザー モデルには、ユーザーの年齢を計算する age メソッドがあります。それは完全に正常に機能し、次のようにユーザーの年齢を呼び出すことができます。

@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

4

1 に答える 1