在rails上的ruby中出现“sqlite3 not found”错误

时间:2010-02-19 05:37:19

标签: ruby-on-rails ruby rubygems

我对RoR很新...我安装了Ruby并安装了它的宝石......

然后下载并安装了MySql ...

创建了我的第一个目录demo。

然后使用 ruby​​脚本/服务器

启动服务器

在浏览器中输入了http://localhost:3000网址并获得了“欢迎登机”页面。直到现在一切都很好......

现在我使用 ruby​​脚本/生成控制器Say

创建一个控制器

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

class SayController < ApplicationController
 def hello

 end
end

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

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

现在我在浏览器中输入了网址http://localhost:3000/say/hello,我收到以下错误

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

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

1.gem install sqlite-ruby

2.gem install sqlite3-ruby

第一个返回成功消息....第二个最初给出了成功消息,然后充满了无定义错误。

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

提前感谢...

2 个答案:

答案 0 :(得分:2)

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

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

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

.dll是DBMS。 SQLite3是一个非常轻量级的数据库 - 在路径中删除.dll实际上就是你需要做的。将它放在ruby / bin目录中是开发机器的常见做法。

答案 1 :(得分:0)

找到了一个解决方案...不知道它是黑客还是解决方法......但它确实有效...我制作了sqlite3.dll的副本并将其粘贴在ruby / bin floder中并且可以正常工作。 !!

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