作为Ruby/Rails的新手,在本周末try 解决这个问题后,我试图在这里寻求建议.

我在FreeBSD上完成了一个完整的Ruby/Apache/Passenger设置,我正试图完成使用Windows作为Ruby开发环境的任务.

到目前为止:

  • Ruby已安装,v2.0.0p0(2013-02-24)[x64-32]
  • 轨道已安装,第3.2.12节
  • 我已经安装并注册了Ruby开发工具包.
  • 我已将sqlite3 dll/exe复制到Ruby"bin"文件夹(该文件夹也位于我使用"带Ruby的启动命令提示符"控制台的路径中)
  • 我可以成功启动rails服务器,并继续学习3.3的http://guides.rubyonrails.org/getting_started.html教程.
  • ">rake db:create" tells me:

    请安装sqlite3适配器:gem install activerecord-sqlite3-adapter(

我对此一无所知.try 安装activerecord-sqlite3-adapter会给我一个"找不到有效的gem…"

  • ">gem install sqlite3" returns:

    Building native extensions. This could take a while...

    D:/Development/Ruby200-x64/bin/ruby.exe extconf.rb

现在我甚至不知道我的Ruby on Windows安装处于什么状态.我试图遵循main Rails教程,但它没有具体说明这些问题(可能是因为Ruby on Windows对很多人来说似乎是一种自然的痛苦)

我错过了什么?!?我只是想在Windows上为Ruby安装sqlite3,看起来很简单吧?

如果我做了">rais db"次,SQLite shell将显示:

SQLite version 3.7.15.2 2013-01-09 11:53:05

类似的问题和无法解决我问题的步骤:

推荐答案

尽管这个问题已经得到了回答,我还是想发表我的研究成果来帮助其他人.我在网上找到了很多信息,但作为一名Ruby新手,我很难了解所有信息.基本答案来自下面的https://github.com/luislavena/sqlite3-ruby/issues/82篇帖子,其中包含"paulwis"关于如何正确安装sqlite3 for ruby 2.0.0-p0的说明,以及https://github.com/rails/rails/issues/10150上的一些 comments .这就是:

  1. 为您的设置安装Ruby Devkit(Devkit-mingw64-64-4.7.2-20130224-1432-sfx.exe,因为我使用的是x64机器)
  2. 从Sqlite下载并解压缩autoconf包.组织
  3. 运行msys.bat(在ruby devkit根文件夹中)
  4. cd插入下载sqlite源代码的路径(例如,如果您是MSYS/MINGW32新手,路径"c:\dev\sqlite3"的"cd/c/dev/sqlite3")
  5. 运行"/configure"
  6. 运行"make"
  7. 运行"make install"
  8. 再次获取sqlite3 gem,这次指定平台和新编译的二进制文件的路径:

    gem install sqlite3 --platform=ruby -- --with-sqlite3-include=[path\to\sqlite3.h] --with-sqlite3-lib=[path\to\sqlite3.o]
    

    例如:

    gem install sqlite3 --platform=ruby -- --with-sqlite3-include=/c:/dev/sqlite3/ --with-sqlite3-lib=/c:/dev/sqlite3/.libs/
    

    (根据步骤4中给出的路径)

  9. 判断文件.锁定rails应用程序,确保它指向正确的sqlite3版本.我的名字是"sqlite3(1.3.7-x86-mingw32)",并手动将其更改为"sqlite3(1.3.7-x64-mingw32)".删除平台也可以:"sqlite3(1.3.7)".

希望这对别人有帮助.

Ruby-on-rails相关问答推荐

Ruby on Rails/Activerecord 排序自引用查询?

为什么总是有东西在我的 mac 上的 5000 端口运行

Rails - 如何使用子对象的嵌套属性和强参数填充父对象ID?

Rails 3 应用程序的 MySQL 集群 (NDB) 与 MySQL 复制 (InnoDB):优点/缺点?

2个空格或1个制表符,Rails社区的缩进标准是什么?

Ruby 地理定位Ruby /插件

使用rails form_for时带有_path的未定义方法

骨干model.destroy()即使工作正常也会调用错误回调函数?

rails 4.0, rake db:sessions:create

在 PostgreSQL 中强制字符串的最大长度

Ruby gem 命名约定

Rails:将所有未知路由重定向到 root_url

Rails 3.0 中的 f.error_messages

Rails - 具有空数组的强参数

过滤器在渲染之前但在控制器之后执行?

如何从 rails 控制器操作发出 404 响应?

Ruby on Rails:如何为 postgresql 编辑 database.yml?

Sidekiq Rails 4.2 使用 Active Job 还是 Worker?有什么不同

在 Rails 4.1 中,如何通过枚举符号查找记录?

如何获取 Rails 3.1 中assets资源 的绝对 URL?