小编lag*_*tin的帖子

Rails:不能包含 pg_search Gem 提供的 PgSearch 模块

总结 :

Gem pg_search 提供的模块PgSearch 无法在staging 环境(Rbenv、nginx、unicorn、capistrano)中包含、需要或加载,问题通过http 发生在web 服务器上,但不会出现在staging 服务器的rails 命令上。可以包含其他 gem 提供的其他模块而不会出错。

本地开发环境(rvm、puma)没问题。

细节

我目前正在使用 ruby​​ 2.0.0 开发 Ruby On Rails 4.0 应用程序,其中 git 存储库托管在 bitbucket 上。我使用 capistrano 通过临时服务器部署应用程序。

  • 登台服务器环境:rbenv、nginx 和 unicorn
  • 本地开发环境:rvm 和 puma

两者的 rails 环境文件(environment/production.rb 和 environment/staging.rb)是相同的。

我做了什么:

我已经安装了 pg_search gem(一个 PostgreSQL 全文搜索 gem),将它添加到我的 Gemfile 并将子句“include PgSearch”放在我想与 pg_search gem 一起使用的 Active Record 模型中

我已经在开发模式下运行该应用程序......它有效!

问题 :

将更改部署到登台服务器后:通过 http 服务器,我收到此错误:

App::MyController#index 中的 NameError 未初始化常量 MyActiveRecordModel::PgSearch

(通常,包含在 GemFile 中的这个 pg_search gem 应该在自动加载搜索路径中包含它的 lib/*.rb 文件和一个像 load "pg_search.rb", require"pg_search" 或 …

ruby activerecord module ruby-on-rails pg-search

5
推荐指数
1
解决办法
2331
查看次数

标签 统计

activerecord ×1

module ×1

pg-search ×1

ruby ×1

ruby-on-rails ×1