ransack을 사용하여 나이별로 결과를 필터링하려고하지만 ransack이 정의되지 않은 메소드 오류를 발생시킵니다. 내 데이터베이스에 사용자 DOB가 있고 사용자 모델에 사용자 나이를 계산하는 연령 방법이 있습니다. 그것은 완벽하게 정상적으로 작동하고이 같은 사용자의 연령 호출 할 수 있어요 :Ransack gem을 사용하여 나이별로 필터링 할 때 정의되지 않은 메소드 오류
내가 내 컨트롤러에 다음과 같은 한 더듬다 지금@user = User.find(1)
@user.age
: 내보기에서
def index
@search = User.search(params[:q])
@users = @search.result
end
, 내가 가진 :
를undefined method `age_gteq' for Ransack::Search<class: User, base: Grouping <combinator: and>>:Ransack::Search
:
<%= 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 %>
이 내가 점점 오전 오류입니다
나는 동일한 오류가 발생할 것이라고 확신합니다. age_lteq
당신은'attr_accessible'에'age'를 추가 했습니까? – Zippie
아니, 나는하지 않았다. 나는 그것이 데이터베이스에 저장된 사용자의 속성이 아니라 메소드이기 때문에해야만했는지 확신 할 수 없었습니다. – pratski
죄송합니다. 나이는 아니지만'age_gteq'와'are_lteq'입니다. 나는 렁을 사용하는 방법을 모르지만 힌트 여야한다. – Zippie