2012-02-22 89 views
1

是否有可能在一個模型和視圖中執行3個單獨的搜索表單?多種搜索形式

目前在我看來,我有以下幾點:

<%= form_tag games_path, :method => 'get' do %> 
    <%= text_field_tag :search, params[:search] %> 
    <%= submit_tag "Search", :game_name => nil %> 
<% end %> 

,並在我的模型如下:

def self.search(search) 
if search 
    find(:all, :conditions => ['game_name LIKE ? OR genre LIKE ? OR console LIKE ?', "%# {search}%", "%#{search}%", "%#{search}%"]) 
else 
    find(:all) 
end 
end 

我想要做的是獨立的三個部分,使模型它並非全都以一種形式出現,例如

def self.search(search) 
    if search 
    find(:all, :conditions => ['genre LIKE ?', "%#{search}%"]) 
    else 
    find(:all) 
    end 
end 

def self.search(search) 
    if search 
    find(:all, :conditions => ['console LIKE ?', "%#{search}%"]) 
    else 
    find(:all) 
    end 
end 

def self.search(search) 
    if search 
    find(:all, :conditions => ['game_name LIKE ?', "%#{search}%") 
    else 
    find(:all) 
    end 
end 

,然後在我看來,有我的上述觀點的代碼X3,以便有一個搜索的名字,一個控制檯和一個流派?我會如何去做這件事?我希望這是有道理的。

回答

0

這種東西變得很快就是一團糟。出於這個原因,您應該在像meta_search這樣的寶石的幫助下尋求更可維護的解決方案。