首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Sphinx Facets进行深入研究

使用Sphinx Facets进行深入研究
EN

Stack Overflow用户
提问于 2012-05-27 06:05:06
回答 1查看 467关注 0票数 3

我有一个应用程序,它使用thinking进行搜索,我可以让facets正确地显示在视图中,但链接不会返回带有给定选项的结果列表。下面是我为模型控制器和视图编写的代码:

控制器:

代码语言:javascript
复制
@facets = Load.facets(
  (params[:trucks]),
  :page => (params[:page] || 1),
  :per_page => 25,
  :geo => degrees_to_radians(@location),
  :with => { "@geodist" => 0.0..miles_to_meters(params[:radius].to_i) },
  :sort_mode => :expr,
  :order => sort_by_select(params[:sort])
  )
  @results = @facets.for

模型:

代码语言:javascript
复制
define_index do 
  indexes commodity
  indexes truck_type
  has latitude, longitude
  has distance, :facet => true
  has weight, :facet => true
  has current_asking_price, :facet => true
  has created_at, :facet => true
  where sanitize_sql(["active", true])
  set_property :delta => :delayed
end

视图:

代码语言:javascript
复制
<% @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>
<% end %>

如果我在":with =>“散列的值部分包含facet选项,我可以得到正确的结果。然而,我不确定如何配置链接,以便它执行另一个搜索,并将该值插入到控制器代码中。任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2012-06-20 07:07:28

乍一看,它看起来像是这条线

代码语言:javascript
复制
<li><%= link_to "#{option} (#{count})", :params => {facet => option, :page => 1}</li>

应该改为读取

代码语言:javascript
复制
<li><%= link_to "#{option} (#{count})", :params => {:facet => option, :page => 1} %></li>

通过这些更改:

  • <%=没有结束的tag
  • :params哈希在facet

之前缺少符号标识符:

然而,我不确定这是否回答了你的问题。

听起来你需要做以下事情:

  1. 将Thinking参数嵌入到link_to标记中。
  2. 在控制器中,使用逻辑来处理参数,然后将它们添加到:with散列中。

逻辑可能包括错误检查、格式化、验证等。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10770140

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档