我正在尝试通过genre_id约束结果,genre_id是“社区”表中的列 但是,community_controller中行的结尾表示错误 为什么?我该如何解决这个问题?
communities_controller.rb
@search = Community.search do
fulltext params[:search]
paginate :page => params[:page], :per_page => 5
end
@communities = @search.results
@communities = @communities.find_by_genre_id(params[:genre])
答案 0 :(得分:1)
您应该观看此视频:http://railscasts.com/episodes/278-search-with-sunspot
它会帮助你。
以下是他使用的示例代码: 型号:article.rb
searchable do
text :name, :boost => 5
text :content, :publish_month
text :comments do
comments.map(&:content)
end
time :published_at
string :publish_month
end
def publish_month
published_at.strftime("%B %Y")
end
搜索算法:
@search = Article.search do
fulltext params[:search]
with(:published_at).less_than(Time.zone.now)
facet(:publish_month)
with(:publish_month, params[:month]) if params[:month].present?
end
@articles = @search.results
我不熟悉太阳黑子,但看起来您的错误(无法识别的字段)可能通过在您的模型中包含:genre_id来解决,如下所示:
searchable do
integer :genre_id
...
end
所以你的新搜索看起来像是:
@search = Community.search do
fulltext params[:search]
with(:genre_id, params[:genre_id])
paginate :page => params[:page], :per_page => 5
end