只关心自动加载在rails中的工作原理
app/models/base_facebook_object.rb
class BaseFacebookObject
end
在我需要的文件中,
app/models/fb_campaign.rb
class FbCampaign < BaseFacebookObject
end
但是上面的内容并没有起作用,因为它说BaseFacebookObject没有定义?
在这种情况下,我是否总是需要基础对象文件?
require "#{Rails.root}/app/models/base_facebook_object"
提前致谢
答案 0 :(得分:0)
自动加载器将解决不合适的常量。在您的情况下,如果您致电FbCampaign
,则会检查文件fb_campaign.rb
,然后在加载过程中会找到BaseFacebookObject
并加载base_facebook_object.rb
换句话说,不需要。实际上你不应该在RoR应用程序中使用require,除了std lib尚未加载(例如securerandom,base64等)或文件到lib / non-autoloaded路径。