2013-06-17 3 views
3

나는 Ransack 검색을 사용하고자하는 매우 간단한 Rails 앱을 보유하고 있습니다.Ransack :: Search <name>에 대한 정의되지 않은 메서드 인 <class : error?

는 그래도 다음과 같은 오류가 발생합니다 :

게시물 컨트롤러 :

undefined method `name_cont' for Ransack::Search<class: Post, base: Grouping  
    <combinator: and>>:Ransack::Search 

내가에만 기초를 필요로하고 다음 코드에 넣어 내 게시물 컨트롤러와 게시물 인덱스 페이지의 지침에 따라

def index 
    @q = Post.search(params[:q]) 
    @posts = @q.result(:distinct => true) 

    respond_to do |format| 
    format.html # index.html.erb 
    format.json { render json: @posts } 
    end 
end 

색인보기 :

<%= search_form_for @q do |f| %> 
    <div class="field"> 
    <%= f.label :name_cont, "Name contains" %> 
    <%= f.text_field :name_cont %> 
    </div> 
    <div class="actions"> 
    <%= f.submit "Search" %> 
    </div> 
<% end %> 

답변

3

귀하의 컨트롤러에 name_cont 메서드가 정의되지 않았다고 생각됩니다. 여기에 무슨 일이 일어나는 지 믿는 것은 검색 양식에 name_cont이없는 객체를 가져와이 오류가 발생하는 이유입니다. 내 제안은 게시물 검색을위한 변수 이름을 정의하는 것입니다.

+1

간단히 name_cont라는 메서드를 정의하는 경우는 아닙니다. Ransack에서는 ' _cont'와 같은 필드를 만들어야합니다. [the railscast] (http://railscasts.com/episodes/370-ransack)를 참조하십시오. _Post_ 모델에는 'name'이라는 속성이 있어야합니다. –

+0

'title_cont'에 대해 정의되지 않은 메서드 오류가 발생하는 유사한 문제가 발생합니다. pls이 해결하는 데 도움이? – Cliffs

관련 문제