2012-04-13 62 views
0

嗨我有一個搜索欄爲我的公司..但它似乎是嘔吐和錯誤,我不知道爲什麼!Rails搜索[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 2012-04-13 12:32:14

+0

在哪張表中,您正在尋找像名稱.... – Kashiftufail 2012-04-13 12:35:42

+0

我正在使用Firm.search調用Firm表上的self.search方法,並且我認爲[params]:在視圖中搜索,將它與控制器的搜索方法? – RMcNairn 2012-04-13 13:02:12

回答

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 2012-04-14 12:26:49