我有一个模型app / models / my_model.rb
class MyModel < ActiveRecord::Base
...
end
我在app / models / my_model_r_r.rb中的MyModel中覆盖了另一个类
class MyModelRR < MyModel
...
end
我在app / helpers / v2 / some_helper.rb中有一个帮助文件,我想使用MyModelRR
module V2::SomeHelper
# Want to use MyModelRR
end
我尝试使用:
# Inside some_helper.rb
require 'app/models/my_model_r_r.rb
# Throws error --
<home>/.rvm/gems/ruby-2.1.4/gems/activesupport-3.2.17/lib/active_support/dependencies.rb:251:in `require': cannot load such file -- app/models/my_model_r_r.rb (LoadError)
在此之后,我将my_model_r_r.rb移到app / models / read_only中,并将其添加到application.rb中:
config.autoload_paths += Dir["#{config.root}/app/models/read_only"]
# Throws error:
NameError (uninitialized constant V2::SomeHelper::MyModelRR):
任何想法如何解决这个问题?
我使用在Ruby 1.9.3上运行的Rails 3.2(与Ruby 2.1相同的错误)
编辑:当我切换到Ruby 1.8.7时,require 'app/models/my_model_r_r.rb'
完全正常。
答案 0 :(得分:0)
这是因为Ruby 1.9.2+并没有自动添加&#34;。&#34;到路径,这导致了这个错误。将此更改为
require './app/models/my_model_r_r.rb'
工作得很好。感谢&#34; Tin Man&#34;对此。