Ошибка "sqlite3 not found" в ruby ​​на рельсах - PullRequest
1 голос
/ 19 февраля 2010

Я очень новичок в RoR ... Я установил Ruby и установил его гемы ...

затем скачал и установил MySql ...

создал мою первую директорию демо.

затем запустил сервер, используя ruby ​​script / server

ввел URL-адрес http://localhost:3000 в браузере и получил страницу "Добро пожаловать на борт" ... все хорошо до сих пор ...

теперь я создаю контроллер, используя скрипт 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

первый вернул сообщение об успехе .... второй изначально дает сообщение об успехе, а затем заполняет меня без определения ошибок.

Я даже не начал использовать модели ... почему он даже выбрасывает исключения в sqlite ..?! я полностью сбит с толку и потерян здесь, так как это моя первая попытка с RoR ...

заранее спасибо ...

Ответы [ 2 ]

2 голосов
/ 19 февраля 2010

sqlite3 был базой данных по умолчанию со времен Rails 2.0.2 - ранее это был MySQL. Конфигурация базы данных находится в config / database.yml, и вы можете изменить ее, если хотите.

Даже при отсутствии моделей rails пытается убедиться, что действительная СУБД, указанная в файле database.yml, готова к использованию.

Установленные вами гемы являются «драйверами», позволяющими вам общаться с базой данных через ruby ​​(аналогично драйверам JDBC в Java или драйверу ADO.NET для .NET), а не реальной СУБД. (sqlite3-ruby является правильным - я не уверен, почему он отображает все эти строки «без определения для ...» - это тоже для меня, но это работает. Возможно, кто-то еще знает почему ...)

.dll - это СУБД. SQLite3 - это очень легкая база данных - удаление DLL в пути - это действительно все, что вам нужно сделать. Размещение его в каталоге ruby ​​/ bin является обычной практикой для машин для разработки.

0 голосов
/ 19 февраля 2010

нашел решение ... не знаю, хак это или обходной путь ... но он работает ... я сделал копию sqlite3.dll и вставил ее в floby ruby ​​/ bin, и она работает. !!

но я хотел бы знать, является ли это реальным решением ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...