我正在将我的Rails 2应用程序转换为Rails 3。到目前为止,我已经取得了成功。然而,有一个奇怪的问题是我必须显式地要求任何外部文件。这是我的原始(即Rails 2)ActiveRecord模型:
class Book < ActiveRecord::Base
belongs_to :author
has_many :translations, :dependent => :destroy
include Freebase
...
end
为了使其在Rails 3中正常工作,我必须要求模型Translation和Freebase.rb文件,因此:
class Book < ActiveRecord::Base
require File.expand_path(File.dirname(__FILE__) + '/translation.rb')
belongs_to :author
has_many :translations, :dependent => :destroy
require File.expand_path(File.dirname(__FILE__) + '../../../lib/freebase.rb')
include Freebase
...
end
这是Rails 3的正常方式吗?还是我做错了什么。换句话说,为什么需要“显式”地包含那些文件?也许Freebase.rb文件有一些原因,它放在lib文件夹中,但是同一目录下的Translation模型呢?
谢谢大家!
ActiveSupport::JSON
,然后它就可以工作了。 - Albus Dumbledore