我正在处理的问题如下。我已经安装了一个全新的红宝石环境。在我目前的项目中,我想使用以下宝石:
RAILS_VERSION = '~> 3.0.4'
DM_VERSION = '~> 1.1.0'
gem 'rails', '3.0.9'
# Database & ORM
gem 'mysql2', '< 0.3'
gem 'data_mapper', DM_VERSION
gem 'dm-mysql-adapter', DM_VERSION
gem 'dm-rails', DM_VERSION
# Authentication
gem 'devise'
gem 'dm-devise'
我有以下database.yml:
defaults: &defaults
adapter: mysql2
encoding: utf8
reconnect: false
pool: 5
username: blabla
password: albalb
host: localhost
socket: /tmp/mysql.sock
执行“捆绑安装”不会导致任何类型的错误。但是只要我想对数据库做一些事情(比如“rails s”或“rake db:migrate”),就会发生以下错误:
/Users/Gery/.rvm/gems/ruby-1.8.7-p352/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:239:in `require': no such file to load -- dm-mysql2-adapter (LoadError)
from /Users/Gery/.rvm/gems/ruby-1.8.7-p352/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:239:in `require'
from /Users/Gery/.rvm/gems/ruby-1.8.7-p352/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:225:in `load_dependency'
from /Users/Gery/.rvm/gems/ruby-1.8.7-p352/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:596:in `new_constants_in'
from /Users/Gery/.rvm/gems/ruby-1.8.7-p352/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:225:in `load_dependency'
from /Users/Gery/.rvm/gems/ruby-1.8.7-p352/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:239:in `require'
你知道如何解决这个问题吗?
最诚挚的问候,
了Gerardo
答案 0 :(得分:4)
我刚进入#datamapper并且solnic帮助我理解了这一点:没有必要在DataMapper中使用mysql2
gem,因为do-mysql
(DataObject驱动程序dm-mysql-adapter依赖于访问MySQL存储库)没有字符编码问题,这就是我(以及大多数人,我认为)在ActiveRecord项目中使用mysql2
驱动程序的原因。
所以答案是,除非我弄错你为什么要使用它,否则从你的Gemfile和你的database.yml文件中删除mysql2
(用mysql
替换它)并做一个新的bundle install
,你不应该需要它。
答案 1 :(得分:0)
由于亚标准编码,这是dm-core中的一个错误。我已经提交了一个黑客修复此黑客并在此处提交了一个拉取请求:https://github.com/datamapper/dm-core/pull/154