我有一个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
我不想使用搜索按钮。我希望在单击复选框(或复选框)时应用过滤器。我是编程的新手,所以任何帮助都会受到赞赏!
答案 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加载你可以这样做的结果,你只需要从表单标签中取出远程操作,它就会刷新整个页面。