Ruby on rails 如何将集合传递给控制器';s操作(不是通过GET)

Ruby on rails 如何将集合传递给控制器';s操作(不是通过GET),ruby-on-rails,Ruby On Rails,我正在使用RubyonRails2.3.8,其想法是实现搜索结果的“排序”功能 我有观点(这是其中的一部分): 以及控制器的操作(到目前为止未执行任何操作): 作为对公告的搜索,我希望将其结果的集合传递给控制器的操作,以便它过滤它们,而不是所有公告 我该怎么做呢?你的问题有点不完整。如果您能提供整个控制器代码的详细信息,那就太好了。不过我还是会试着回答。 更好的方法是传递“搜索词”本身。假设搜索词存储在实例变量@search中 您的链接应该是: @search)%> 你的路线应该是: map.s

我正在使用RubyonRails2.3.8,其想法是实现搜索结果的“排序”功能

我有观点(这是其中的一部分):

以及控制器的操作(到目前为止未执行任何操作):

作为对公告的搜索,我希望将其结果的集合传递给控制器的操作,以便它过滤它们,而不是所有公告


我该怎么做呢?

你的问题有点不完整。如果您能提供整个控制器代码的详细信息,那就太好了。不过我还是会试着回答。 更好的方法是传递“搜索词”本身。假设搜索词存储在实例变量
@search

您的链接应该是:

@search)%>

你的路线应该是:

map.search\u filter\u relevance”/anuncios/search\u filter\u relevance/:search“,:controller=>‘公告’,:action=>‘search\u filter\u 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

那么,是否要将一些数组从已渲染视图传递回其控制器?我想将单击排序链接时的当前搜索结果传递给控制器的操作,以便我可以对其进行筛选。这是一种错误的方法。您必须在search\u filter\u relevance method中再次从原始搜索结果获取所有搜索结果。我曾考虑过这样做,但问题是我没有在params[:search](代码中的params[:Announces])中接收到公告集合,而是接收它们的永久链接。例如,我得到以下参数:{“controller”=>“announcements”,“action”=>“search\u filter\u relevance”,“announces”=>“anuncio-3/apoyo en cbc/anuncio-tags con plugin/prueba-delta-1”}我如何获得公告集合?Brian,这里的要点是,你不应该将集合从视图传递给控制器。您应该维护搜索查询。例如,如果有人发现公告在文本字段中键入“blah”,那么您的订购链接应再次将查询传递给控制器,因此控制器将再次从数据库中搜索并对其进行排序。好的,我将尝试此操作并让您知道。谢谢
map.search_filter_relevance "/anuncios/search_filter_relevance", :controller => 'announcements', :action => 'search_filter_relevance'
  def search_filter_relevance
    raise params.inspect
  end
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