我有一个现有的rails应用程序我在ruby 1.9.2和linux上运行它的rails版本
rails 2.3.8
它也有一个GEMFILE,在它的vendor / gems目录中它有'fastercsv-1.5.4'宝石
在其迁移中(在两次迁移中)它需要gem'quickedcsv'
require 'fastercsv'
但是当我做的时候
rake db:migrate
它未通过迁移声明
“请切换到Ruby 1.9的标准CSV库。它是FasterCSV加上对Ruby 1.9的m17n编码引擎的支持。”
我发现消息来自gems'fast_csv.rb'文件。因为它有条件检查红宝石版本
if RUBY_VERSION >= "1.9"
class FasterCSV
def self.const_missing(*_)
raise NotImplementedError, "Please switch to Ruby 1.9's standard CSV " +
"library. It's FasterCSV plus support for " +
"Ruby 1.9's m17n encoding engine."
end
def self.method_missing(*_)
const_missing
end
def method_missing(*_)
self.class.const_missing
end
end
-- and more code
有人可以告诉我如何解决这个问题。请注意,'fastercsv'尚未添加到GEMFILE中。
答案 0 :(得分:38)
您不需要在Ruby 1.9.2中使用FasterCSV gem,因为它已作为标准库CSV
(例如require 'csv'
)包含在内。只需将您的应用中的引用从FasterCSV
更改为CSV
,然后移除vendor/gems/fastercsv
文件夹,它就应该正常工作(tm)
答案 1 :(得分:18)
我找到了问题的答案
基于这篇文章
What is Ruby 1.9 standard CSV library?
并且作为我必须的解决方案
require 'csv'
而不是
require 'fastercsv'
并将FasterCSV更改为CSV