多种搜索表单

时间:2012-02-22 19:14:08

标签: ruby-on-rails search

是否可以在一个模型和视图中执行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,以便有一个搜索名称,一个用于控制台,一个用于流派?我该怎么做呢?我希望这是有道理的。

1 个答案:

答案 0 :(得分:0)

这种东西很快变得一团糟。出于这个原因,你应该在像meta_search这样的宝石的帮助下寻求更易于维护的解决方案。