【问题标题】:Rails 4 postgres full text search error (scoped)Rails 4 postgres全文搜索错误(范围)
【发布时间】: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])

没什么区别。

我几乎到处搜索,但无济于事。

【问题讨论】:

标签: ruby-on-rails ruby postgresql ruby-on-rails-4 railscasts


【解决方案1】:

scoped 已被删除。请改用all

【讨论】:

  • 这消除了错误,但是当我进行搜索时,我得到了所有文章。我会将其标记为已接受,因为它回答了我的问题,但知道为什么搜索会全部返回吗?
猜你喜欢
  • 2020-05-07
  • 1970-01-01
  • 1970-01-01
  • 2016-10-17
  • 1970-01-01
  • 2014-10-09
  • 2014-11-18
  • 2018-02-03
  • 2016-07-11
相关资源
最近更新 更多