是否可以在字符串的复选框上使用MetaSearch?

时间:2011-09-16 00:20:09

标签: ruby-on-rails-3 search meta-search

我有一个Users的索引页面,我想使用MetaSearch过滤搜索表单。但是,单击“复选框”时我要搜索的值将存储为字符串。例如,这是我想要将MetaSearch应用于的表单:

<% form_for(current_user.profile) do |f| %>
<table id="careerCriteria">
  <tr>
    <td class="normal"><%= current_user.profile.hometown %></td>
    <td><%= check_box_tag :hometown %></td>
  </tr>
  <tr>
    <td class="normal"><%= current_user.profile.current_city %></td>
    <td><%= check_box_tag :current_city %></td>
  </tr>
  <tr>
    <td class="normal"><%= current_user.profile.past_city %></td>
    <td><%= check_box_tag :past_city %></td>
  </tr>
</table>
<% end %>

我的用户模型:

class User < ActiveRecord::Base
  has_one :profile, :dependent => :destroy
end

我不想使用搜索按钮。我希望在单击复选框(或复选框)时应用过滤器。我是编程的新手,所以任何帮助都会受到赞赏!

1 个答案:

答案 0 :(得分:1)

你需要一点点ajax&amp;查询来完成这个。

这是一篇很好的文章,向您展示如何使复选框提交表单。

http://trevorturk.com/2010/08/24/easy-ajax-forms-with-rails-3-and-jquery/

您要做的是在控制器中创建一个处理搜索的操作。以下是搜索操作的示例...

def search
    if params[:term].blank?
        raise "You must provide search criteria."
    end

    params[:term] = "%#{params[:term]}%"
    conditions    = " Description LIKE :term"

    @careers = Career.all(
        :conditions => [conditions, params],
        :offset     => params[:offset],
        :limit      => params[:limit]
    )

    respond_with @careers
end

您还需要为此搜索操作设置路线。

resources :careers do
    get "search/:term/:offset/:limit.:format", :action => "search", :constraints => { :offset => /\d+/, :limit => /\d+/ }
end

表单提交后,您应该可以使用jQuery更新结果。

现在请记住,如果你不想使用Ajax&amp; jQuery加载你可以这样做的结果,你只需要从表单标签中取出远程操作,它就会刷新整个页面。