我正在使用Ruby on rails 2.3.8,其目的是为搜索结果实现“排序”功能。
我有了观点(这是其中的一部分):
<span>Sort by:</span> <%= link_to 'MORE RELEVANT', search_filter_relevance_path %>
路由文件:
map.search_filter_relevance "/anuncios/search_filter_relevance", :controller => 'announcements', :action => 'search_filter_relevance'
和控制器的动作(到目前为止无所作为):
def search_filter_relevance
raise params.inspect
end
在搜索公告时,我想将其结果集合传递给控制器的操作,以便过滤它们,而不是所有公告。
我该怎么做?
答案 0 :(得分:1)
你的问题有点不完整。如果您能提供整个控制器代码的详细信息,那就太棒了。我仍然会尝试回答它。
更好的方法是通过“搜索术语”本身。假设搜索词存储在实例变量@search
中。
你的link_to应该是:
<%= link_to 'MORE RELEVANT', search_filter_relevance_path(:search => @search) %>
你的路线应该是:
map.search_filter_relevance "/anuncios/search_filter_relevance/:search", :controller => 'announcements', :action => 'search_filter_relevance'
和你的行动:
def search_filter_relevance
#You can access the search term using params[:search] and then reproduce the search results in a filtered form!
#Example: If you using acts_as_solr to search your table(s).. (Can be applied to any other FTS plugin)
#This sorts the results in ascending order
#@result = Model.find_by_solr(params[:search], :order => "created_at ASC")
end