0

我在使用没有 ActiveRecord 的 Rails 5.2 的项目中遇到问题。

我已经运行了命令rails new project --skip-active-record并且没问题,但是当我运行命令来生成模型时,我得到了这个错误:

.rvm/gems/ruby-2.5.1/gems/bundler-1.16.1/lib/bundler/rubygems_integration.rb:404:in `block (2 levels) in replace_gem':加载 'sqlite3' Active Record 适配器时出错。缺少它所依赖的宝石?sqlite3 不是捆绑包的一部分。将其添加到您的 Gemfile。(宝石::加载错误)

如果我禁用它并且我在互联网上搜索并且没有找到任何人在谈论它,我不明白为什么它会询问活动记录中的 sqlite 3。

怎么了?

谢谢

4

4 回答 4

1

命令

rails g model MODEL

将生成模型、迁移和固定装置。这与ORM有关。所以 rails 会查看数据库配置。在那里你会提到 ORM 客户端

adapter: sqlite3

您需要为此安装sqlite3 gem。添加

gem 'sqlite3'

到您的Gemfile

如果您想单独添加模型,请在app/models文件夹内创建文件。但是这样做有什么意义呢?Rails 将根据模型的类名查找名并抛出错误

于 2018-05-08T11:53:39.867 回答
1

如果您不想使用ActiveRecord,则无需使用rails g. 您只需转到app/models应用程序中的目录并创建一个普通的 ruby​​ 类来将其用作模型。

于 2018-05-08T10:24:01.440 回答
0

$ bin/rails generate model ...命令实际上创建了一个迁移和一个 ActiveRecord 模型,这就是您收到与数据库相关的错误的原因。请参阅模型生成器

于 2018-05-08T09:58:37.477 回答
0

我假设你没有 ORM。如果是这种情况,那么running rails generate model不应该做任何事情,它甚至不应该默认安装 sqlite。尝试更新您的 sqlite gem

于 2018-05-08T02:26:43.607 回答