Ruby on Rails,“无法启动此程序,因为计算机中丢失LIBMYSQL.dll”问题解决

http://blog.csdn.net/abbuggy/article/details/7405192

我的电脑使用Ruby on Rails与MySQL连接时,会提示“无法启动此程序,因为计算机中丢失LIBMYSQL.dll。尝试重新安装程序以解决此问题”(This application has failed to start because LIBMYSQL.DLL was not found.)的错误。

软件版本:

Win7 64位
E:\greensoft\RailsInstaller>mysql -v
Server version: 5.5.17 MySQL Community Server (GPL)

E:\greensoft\RailsInstaller>ruby -v
ruby 1.9.3p125 (2012-02-16) [i386-mingw32]
E:\greensoft\RailsInstaller>rails -v
Rails 3.2.1
E:\greensoft\RailsInstaller>gem list mysql2
mysql2 (0.3.11 x86-mingw32)

尝试过将MySQL\MySQL Server 5.5\lib下的libmysql.dll和libmysql.lib拷贝到Ruby/bin中。报错换成

E:\greensoft\RailsInstaller\Sites\simple_site>rails server
E:/greensoft/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/mysql2-0.3.11-x86-mingw32/lib/mysql2/mysql2.rb:2:in `require': 193: %1 不是有效的 Win32 应用程序。   - E:/greensoft/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/mysql2-0.3.11-x86-mingw32/lib/mysql2/1.9/mysql2.so (LoadError)
	from E:/greensoft/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/mysql2-0.3.11-x86-mingw32/lib/mysql2/mysql2.rb:2:in `<top (required)>'
	from E:/greensoft/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/mysql2-0.3.11-x86-mingw32/lib/mysql2.rb:9:in `require'
	from E:/greensoft/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/mysql2-0.3.11-x86-mingw32/lib/mysql2.rb:9:in `<top (required)>'
	from E:/greensoft/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/bundler-1.0.22/lib/bundler/runtime.rb:68:in `require'
	from E:/greensoft/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/bundler-1.0.22/lib/bundler/runtime.rb:68:in `block (2 levels) in require'
	from E:/greensoft/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/bundler-1.0.22/lib/bundler/runtime.rb:66:in `each'
	from E:/greensoft/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/bundler-1.0.22/lib/bundler/runtime.rb:66:in `block in require'
	from E:/greensoft/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/bundler-1.0.22/lib/bundler/runtime.rb:55:in `each'
	from E:/greensoft/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/bundler-1.0.22/lib/bundler/runtime.rb:55:in `require'
	from E:/greensoft/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/bundler-1.0.22/lib/bundler.rb:122:in `require'
	from E:/greensoft/RailsInstaller/Sites/simple_site/config/application.rb:7:in `<top (required)>'
	from E:/greensoft/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3.2.1/lib/rails/commands.rb:53:in `require'
	from E:/greensoft/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3.2.1/lib/rails/commands.rb:53:in `block in <top (required)>'
	from E:/greensoft/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3.2.1/lib/rails/commands.rb:50:in `tap'
	from E:/greensoft/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3.2.1/lib/rails/commands.rb:50:in `<top (required)>'
	from script/rails:6:in `require'
	from script/rails:6:in `<main>
后来才知道这是由于32位的Ruby与64位的MySQL的不兼容造成的。

不用重装操作系统,也不用重装MySQL,使用32位的MySQL connector来屏蔽这些问题。下载时请看清32位windows的zip版本。
http://dev.mysql.com/downloads/connector/c/



下载下来解压缩,将lib目录下的libmysql.dll和libmysql.lib拷贝到Ruby/bin目录下。问题解决!

E:\greensoft\RailsInstaller\Sites\simple_site>rails server
=> Booting WEBrick
=> Rails 3.2.1 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2012-03-29 00:33:30] INFO  WEBrick 1.3.1
[2012-03-29 00:33:30] INFO  ruby 1.9.3 (2012-02-16) [i386-mingw32]
[2012-03-29 00:33:30] INFO  WEBrick::HTTPServer#start: pid=4596 port=3000

http://blog.csdn.net/abbuggy/article/details/7405192

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
要为 Ruby on Rails 程序加入拖曳排序功能,你可以使用 jQuery UI 的 Sortable 插件和 Rails 的 AJAX 功能来实现。 首先,在你的 Rails 应用程序安装 jQuery UI: ```ruby # Gemfile gem 'jquery-ui-rails' ``` 然后,在应用程序的 JavaScript 文件添加以下代码: ```javascript // app/assets/javascripts/application.js //= require jquery-ui/widgets/sortable $(document).ready(function() { $('ul.sortable').sortable({ axis: 'y', update: function(event, ui) { $.ajax({ url: '/items/sort', type: 'PATCH', data: $(this).sortable('serialize'), success: function() { console.log('Items sorted'); } }); } }); }); ``` 上面的代码将为具有 `sortable` 类的 `ul` 标签添加拖曳排序功能。当用户完成排序并释放鼠标时,它将向 `/items/sort` 发送一个 PATCH 请求,其包含排序后的项目信息。 接下来,在控制器添加 `sort` 动作: ```ruby # app/controllers/items_controller.rb class ItemsController < ApplicationController def sort params[:item].each_with_index do |id, index| Item.where(id: id).update_all(position: index + 1) end head :ok end end ``` 上面的代码将根据传递的项目 ID 更新其位置。最后,你需要在视图为每个项目添加位置属性: ```html <!-- app/views/items/index.html.erb --> <ul class="sortable"> <% @items.each do |item| %> <li data-id="<%= item.id %>"> <%= item.name %> <span class="position"><%= item.position %></span> </li> <% end %> </ul> ``` 这就是为 Ruby on Rails 程序添加拖曳排序功能的基本步骤。你可以根据自己的需求进行修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值