Ruby on rails 值的下拉列表,从结果集中选择,用作Ruby中Rails的过滤器
我有一个搜索结果表单,它返回类文档的@documents列表。文档具有一种类型。一个类型有许多文档 我在搜索结果上有一个下拉列表过滤器,可以根据类型对@document列表进行过滤,但目前,该列表包含所有可能的类型。如果该类型的列表中至少有一个文档,我只希望该类型出现在下拉列表中 (状态还有第二个下拉列表,同样的问题也适用) 这是我到目前为止得到的,但它返回所有类型Ruby on rails 值的下拉列表,从结果集中选择,用作Ruby中Rails的过滤器,ruby-on-rails,Ruby On Rails,我有一个搜索结果表单,它返回类文档的@documents列表。文档具有一种类型。一个类型有许多文档 我在搜索结果上有一个下拉列表过滤器,可以根据类型对@document列表进行过滤,但目前,该列表包含所有可能的类型。如果该类型的列表中至少有一个文档,我只希望该类型出现在下拉列表中 (状态还有第二个下拉列表,同样的问题也适用) 这是我到目前为止得到的,但它返回所有类型 <%= form_for :document_filter, :url => search_results_home_
<%= form_for :document_filter, :url => search_results_home_index_path, :html => {:class=>"form-inline"} do |f| %>
<%= f.collection_select :document_type_id , DocumentType.alphabetically , :id,:name,{:prompt=>"Select document type"} %>
<%= f.collection_select :document_status , Status.for_filter , :id,:name,{:prompt=>"Select document status"} %>
<%= f.submit "Go" %>
<%end%>
search_results_home_index_path,:html=>{:class=>“form inline”}do | f |%>
“选择文档类型”}%>
“选择文档状态”}%>
Rails有一种简单的方法来实现这一点吗?您可以为包含文档的文档类型创建一个作用域,类似这样(在models/document\u type.rb中): 然后在您的集合中选择,使用范围:
<%= f.collection_select :document_type_id , DocumentType.has_documents.alphabetically , :id,:name,{:prompt=>"Select document type"} %>
“选择文档类型”}%>
(我还没有试过,所以不能百分之百确定它能正常工作)谢谢你的回复。与搜索结果(@documents)中包含文档的documenttype不同,这不适用于所有在整个集合中包含文档的documenttype吗?事实上,很抱歉,应该意识到您正在搜索的是一个筛选列表。你在筛选什么,一个或多个字段?多个,因此用户可以根据类型、状态或两者进行筛选。你最好根据集合生成这些下拉列表。比如:
“Select document type”}%>
由于这有点冗长,您可能需要考虑使用class-method.Hmm。现在获取一个将分页的错误<代码>未定义的方法用于#``的文档_类型。我不得不说,Rails完全让我困惑。。。
<%= f.collection_select :document_type_id , DocumentType.has_documents.alphabetically , :id,:name,{:prompt=>"Select document type"} %>