2012-02-22 87 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这样的宝石的帮助下寻求更可维护的解决方案。