Ruby on rails 思考面狮身人面像的名称

Ruby on rails 思考面狮身人面像的名称,ruby-on-rails,sphinx,thinking-sphinx,faceted-search,Ruby On Rails,Sphinx,Thinking Sphinx,Faceted Search,我为产品模型定义了如下方面: product_index.erb ThinkingSphinx::Index.define :product, :with => :active_record do indexes publish indexes name, :sortable => true indexes price, :sortable => true indexes manufacturer.permalink, :as => :manufact

我为产品模型定义了如下方面:

product_index.erb

ThinkingSphinx::Index.define :product, :with => :active_record do  
  indexes publish
  indexes name, :sortable => true
  indexes price, :sortable => true
  indexes manufacturer.permalink, :as => :manufacturer, :facet => true
  has manufacturer_id
end
和视图中的面:

<% @facets.each do |facet, facet_options| %>
<h5><%= facet %></h5>
<ul>
    <% facet_options.each do |option, count| %>
    <li><%= link_to "#{option} (#{count})",
    :params => {facet => option, :page => 1} %></li>
    <% end %>
</ul>

  • {facet=>option,:page=>1}%>
这是为制造商生成面,如下所示:

制造商

  • 制造商永久链接(53)

如何为标题添加自己的名称(例如,将制造商替换为品牌)以及为链接添加自己的名称(例如,将制造商permalink(53)替换为制造商名称(53)(其中制造商是一个模型类))

我为此写了一篇文章——将外键面转换为相应的对象。您可以在此处找到代码:

您需要明确迭代哪些方面,否则最终会在HTML中列出制造商id和制造商

在facet搜索查询之后,控制器的操作可能会发生以下情况:

FacetExpander.expand @facets, :manufacturer
那么在你看来,

<h5>Manufacturers</h5>
<ul>
  <% @facets[:manufacturers].each do |manufacturer, count| %>
  <li><%= link_to "#{manufacturer.name} (#{count})",
    :params => {:manufacturer_id => manufacturer.id, :page => 1} %></li>
  <% end %>
</ul>
制造商
  • {:manufacturer\u id=>manufacturer.id,:page=>1}%>