【发布时间】:2014-05-26 15:19:49
【问题描述】:
我一直在使用 postgres 进行全文搜索,但我一直收到以下错误
未定义的局部变量或方法“作用域”#
我完全遵循railscast。我安装了所有正确的宝石。 (pg_search, pg)。这是我的代码
文章控制器(我在这里也使用acts_as_taggable)
def index
@articles = Article.text_search(params[:query]).page(params[:page]).per_page(3)
if params[:tag]
@articles = Article.tagged_with(params[:tag])
else
@articles = Article.all
end
end
文章模型
def self.text_search(query)
if query.present?
where("name @@ :q or content @@ :q", q: query)
else
scoped
end
end
以及文章/索引上的表格
<%= form_tag articles_path, method: :get do %>
<p>
<%= text_field_tag :query, params[:query] %>
<%= submit_tag "Search", name: nil %>
</p>
<% end %>
我注意到 railscast 代码和我的代码之间的唯一区别是他使用 will_paginate 但是当我将控制器更改为
@articles = Article.text_search(params[:query])
没什么区别。
我几乎到处搜索,但无济于事。
【问题讨论】:
-
我建议您使用诸如
byebuggem 或Railsdebugger之类的调试工具,并将它们粘贴到您的index操作和text_search方法中。
标签: ruby-on-rails ruby postgresql ruby-on-rails-4 railscasts