gpt4 book ai didi

ruby-on-rails - Rails 3 中的显式要求

转载 作者:行者123 更新时间:2023-11-30 23:58:22 25 4
gpt4 key购买 nike

我正在将我的 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 中的正常方式,还是我做错了什么。换句话说,为什么有必要显式包含这些文件?放置在 lib 文件夹中的 Freebase.rb 文件可能有某种原因,但是位于同一目录中的 Translation 模型呢?

谢谢你们!

最佳答案

Rails 3 不会像 Rails 2 那样自动自动加载。

打开 config/application.rb 并自定义如下所示的行:

# Custom directories with classes and modules you want to be autoloadable.
# config.autoload_paths += %W(#{config.root}/extras)

在你的情况下,你可能想要
config.autoload_paths += %W(#{config.root}/lib)

关于ruby-on-rails - Rails 3 中的显式要求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3962235/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com