【发布时间】:2012-12-17 21:23:14
【问题描述】:
我已阅读有关此主题的先前主题,但我在那里找到的解决方案并没有解决我的问题。我有一个不进行数据库访问的 rails 3.2.9 应用程序 - 它使用 HTTP Rest 协议到另一个应用程序来访问持久数据。该应用程序在使用 WEBrick 的“rails 服务器”的本地测试环境中运行正常,但无法使用 Nginx/Passenger 运行,并出现错误“* 应用程序中的异常加载错误(请安装 sqlite3 适配器:@987654322 @(sqlite3 不是捆绑包的一部分。将其添加到 Gemfile。))”。从堆栈跟踪看来,ActiveRecord 想要在处理请求之前执行的代码中急切地建立数据库连接。我试图按照说明从我的依赖项中删除 ActiveRecord,但没有成功。我使用 --skip-activerecord 生成,它按预期生成了这样的 application.rb:
require File.expand_path('../boot', __FILE__)
# Pick the frameworks you want:
# require "active_record/railtie"
require "action_controller/railtie"
require "action_mailer/railtie"
require "active_resource/railtie"
require "sprockets/railtie"
require "rails/test_unit/railtie"
在我的应用程序中的任何地方都没有对 activerecord 或 active_record 的引用,除了 bundler 创建的 gemlock 文件、cmets 和自述文件中。 Bundler 将 ActiveRecord 报告为依赖项,而“bundle viz”将 rails 本身报告为需要 ActiveRecord 的 gem。任何建议或意见都将受到欢迎。
回答 eric 的问题,这是我的 Gemfile
source 'https://rubygems.org'
gem 'rails', '3.2.9'
group :assets do
gem 'sass-rails', '~> 3.2.3'
gem 'coffee-rails', '~> 3.2.1'
gem 'uglifier', '>= 1.0.3'
end
gem 'jquery-rails'
【问题讨论】:
-
你的 gemfile 中有什么?
-
感谢您的快速响应,埃里克。我更新了问题以添加您要求的信息
-
你有
database.yml吗?这里面是什么?你看到这个答案了吗? stackoverflow.com/a/9139040/376680 -
感谢您的回复。我没有 database.yml 文件。我确实看到了您引用的答案 - 请注意 user341458 的评论说(s)他仍然将 activerecord 视为依赖项。就我而言,这似乎是我的 nginx/passenger 失败的可能根本原因。顺便说一句,您可以使用以下步骤在没有我的文件的情况下重现我的问题:
-
顺便说一句,您可以使用以下步骤在没有我的文件的情况下重现我的问题:1)“rails new demo_app --skip-activerecord”2)见证捆绑安装包含 activerecord 3)“rails generate脚手架用户名:字符串电子邮件:字符串” 4)编写一个虚拟类用户,它只在内存中保存用户的哈希值 5)验证它在本地工作 6)验证它与 nginx/passenger 失败
标签: ruby-on-rails activerecord passenger