2012-04-13 3 views
0

안녕하세요. 저는 회사를 검색 할 수있는 바를 가지고 있습니다. 그러나 문제가 발생하고 오류가 발생하여 문제가 해결되지 않습니다.레일 검색 [params] 오류

내보기

application.html.erb

<%= form_tag firms_path, :method => 'get', :class => 'form-search' do %> 
<%= text_field_tag :search, params[:search], :class => 'input-medium search-query', :placeholder => 'Firm name' %> 
<%= submit_tag "Search", :name => nil ,:class => 'btn' %> 
<% end %> 

내 firms_controller.rb

def index 
@firms = Firm.search(params[:search]) 
end 


def self.search(search) 
    if search 
    where(['name LIKE ?', "%#{search}%"]).page(params[:id]) 
    else 
    scoped 
    end 
end 

이 잘 작동하는 데 사용하지만, 지금은이 오류를 던지고있다.

NameError in FirmsController#index 

undefined local variable or method `params' for #<Class:0x007f93cd8b2ac8> 

app/models/firm.rb:13:in `search' 
app/controllers/firms_controller.rb:8:in `index' 

아이디어가 있으십니까? 어떤 도움

로스

+1

에 미리 덕분에'params'은 그래서 당신의 모델 중 하나 내부 방법에서 사용할 수없는 컨트롤러 방법이다. – mikej

+0

어떤 테이블에서 이름을 찾는 중입니까? – Kashiftufail

+0

Firm.search를 사용하여 Firm 테이블에서 self.search 메소드를 호출합니다. 뷰의 [params] : 검색이 컨트롤러 .search 메소드의 인수? – RMcNairn

답변

1

수정

def index 
@firms = Firm.search(params[:search], params[:id]) 
end 

def self.search(search, id) 
if search 
    where(['name LIKE ?', "%#{search}%"]).page(id) 
else 
    scoped 
end 
end 
+0

! 어떻게 작동하는지 이해할 수 있도록 마이크와 감사합니다 @mikej에게 감사드립니다! – RMcNairn