【问题标题】:"sqlite3 not found" error in ruby on railsruby on rails 中的“sqlite3 not found”错误
【发布时间】:2010-02-19 17:41:21
【问题描述】:

我对 RoR 很陌生...我安装了 Ruby 并安装了它的 gems...

然后下载并安装MySql...

创建了我的第一个目录演示。

然后使用 ruby script/server

启动服务器

在浏览器中输入http://localhost:3000 url 并获得“欢迎登机”页面..到目前为止一切都很好......

现在我使用 ruby 脚本/生成控制器说创建一个控制器

控制器已创建,看起来像这样

class SayController < ApplicationController
 def hello

 end
end

然后我创建一个看起来像这样的视图文档 hello.html.erb..

<html>
<body>
    <h1>Hello World!!!</h1>
</body>
</html>

现在我在浏览器中输入 url http://localhost:3000/say/hello 并收到以下错误

此应用程序无法启动,因为未找到 sqlite3.dll。重新安装应用程序可能会解决此问题。 并且浏览器会显示默认错误页面

我做了一些谷歌搜索并尝试了以下..

1.gem 安装 sqlite-ruby

2.gem 安装 sqlite3-ruby

第一个返回了成功消息....第二个最初给出了成功消息,然后用 no definition 错误淹没了我。

我什至还没有开始使用模型......为什么它甚至在 sqlite 中抛出异常......?!因为这是我第一次尝试使用 RoR,所以我完全困惑和迷失在这里......

提前谢谢...

【问题讨论】:

    标签: ruby-on-rails ruby rubygems


    【解决方案1】:

    自 Rails 2.0.2 以来,sqlite3 一直是默认数据库 - 以前是 MySQL。数据库配置在 config/database.yml 中,您可以根据需要更改它。

    即使没有模型,rails 也会尝试确保 database.yml 中指定的实际 DBMS 可用。

    您安装的 gem 是“驱动程序”,可让您通过 ruby​​ 与数据库通信(类似于 Java 中的 JDBC 驱动程序或 .NET 的 ADO.NET 驱动程序),而不是实际的 DBMS。 (sqlite3-ruby 是正确的 - 我不知道为什么它会显示所有那些“没有定义......”的行 - 它也适用于我,但它有效。也许其他人知道为什么......)

    .dll 是 DBMS。 SQLite3 是一个非常轻量级的数据库——在路径中删除 .dll 确实是您需要做的所有事情。将其放在 ruby​​/bin 目录中是开发机器的常见做法。

    【讨论】:

    • 谢谢...真的很有用... :) 但是您如何更改默认数据库...我尝试摆弄 database.yml...但不知道该怎么做...
    • 这里是一个链接,展示了如何从 RoR Wiki 中指定 MySQL - wiki.rubyonrails.org/database-support/mysql
    • 谢谢,我遇到了同样的问题,除了 sqlite3 的 dll is 在我的 ruby​​\bin 中,它仍然告诉我找不到它。还有其他想法吗?
    • @Paul - 1.) 确保 ruby​​\bin 在 %PATH% 上(如果 Ruby 运行,应该是这样 - 你可能有多个安装...) 2.) sqlite3 dll 损坏?尝试重新下载并重新安装? 3.) 错误的文件/版本?确保您从 Sqlite3 站点的“Precompiled Binaries for Windows”部分获取 sqlitedll-3_6_23.zip 文件(或更新版本)。
    • 1) 完成并正确; 2)不,重新安装了几次;错误出在驱动程序上,而不是 sqlite3 dll; 3) 是的,3_6_23.zip 是我得到的。
    【解决方案2】:

    找到了解决方案...不知道是破解还是解决方法...但它可以工作...我复制了 sqlite3.dll 并将其粘贴到 ruby​​/bin floder 中,它可以工作。 !!

    但我想知道这是否是真正的解决方案...

    【讨论】:

    • 这已经足够了 - 你需要在你的 PATH 中的某个地方的 DLL。 ruby/bin 已经存在,这就是它起作用的原因。
    • 是的,我同意... nate 的回复很有用...最好为您选择的数据库配置您的应用程序,而不是解决问题...
    猜你喜欢
    • 2013-01-29
    • 1970-01-01
    • 2013-11-20
    • 1970-01-01
    • 1970-01-01
    • 2017-06-15
    • 2014-04-17
    • 2020-05-27
    • 1970-01-01
    相关资源
    最近更新 更多