我正在使用Sunspot进行搜索功能。这是我的控制器文件。
def show
search = Clothes.search do
fulltext 'params[:name]'
paginate :page => 1, :per_page => 30
end
@results = search.results
end
我有一个模型,我的产品有name,maxprice,minprice等, 仅当我插入
时,搜索功能才起作用 fulltext 'Nike'
然后它显示所有Nike产品的任何搜索查询。 你能帮帮我吧
这是我的模特
class Clothes < ActiveRecord::Base
searchable do
text :name, :default_boost => 1
integer :discount
float :maxprice
float :minprice
string :image
end
也是我的观点文件。
<h1>Results for your search.</h1>
<%= render "shirts/new"%>
<table><tr><th>Name</th><th>Max. Price</th><th>Min. Price</th><th>Discount</th><th>Image</th></tr>
<% for prod in @results %>
<tr><td><%= prod.name %></td><td><%= prod.maxprice%></td><td><%= prod.minprice%></td><td><%= prod.discount%></td><td> <%= image_tag(prod.image, :alt => "logo", :size => "75x75") %> </td></tr>
<% end %>
</table>
请帮我解决这个问题。
端
答案 0 :(得分:0)
试试这个,我已经很久以前使用过这段代码了。它应该工作
search = Sunspot.search(Food) do
keywords reference if reference.present?
with(:vendor_id).any_of(vendor_ids) if vendor_ids.present?
order_by :created_at, :desc
paginate(:page => page, :per_page => per_page)
end
在模型中,`关键字引用,:fields =&gt; [:user_name,:food_habits,:age]
默认情况下,关键字方法包括所有文本字段,除非选项`
另有说明答案 1 :(得分:0)
请注意,您将字符串'params[:name]'
传递给fulltext
方法,而不是params[:name]
本身的值。将其更改为:
def show
search = Clothes.search do
fulltext params[:name]
paginate :page => 1, :per_page => 30
end
@results = search.results
end