Rails:命名空间模型未加载

我想删除我的帐户

我使用Rails4,并在app / models中创建了一个子文件夹,但是我不为什么,rails无法在该子文件夹下加载文件。

这是我的BasicForm在app/models/common/basic_form.rb目录中:

class Common::BasicForm < ActiveRecord::Base

    def name=(value)
        super(value.downcase!)
    end

    def phone=(value)
       super(value.blank? ? nil : value.gsub(/[^\w\s]/, '')) 
    end

end

这里是BasicForm的子类:

class Event < Common::BasicForm

    validates   :name,          presence: true
    validates   :description,   presence: true
    validates   :city,          presence: true
    validates   :address,       presence: true
    validates   :event_start,   presence: true
    validates   :event_end,     presence: true
    validates   :phone,         presence: true, length: { maximum: 20, too_long: "%{count} characters are allowed"}     
end

config/application.rb我添加这一config.autoload_paths += [ config.root.join('app') ]行:

module MyApp
  class Application < Rails::Application
    config.autoload_paths += [ config.root.join('app') ]
  end
end

我重新启动了服务器,但是仍然出现此错误:

Unable to autoload constant Common::BasicForm, expected /vagrant/MyApp/app/models/common/basic_form.rb to define it

这是不正确的,因为linux中的nano可以打开basic_form.rb:

vagrant@rails-server-dev:/vagrant/MyApp$ nano /vagrant/MyApp/app/models/common/basic_form.rb

然后纳米罐打开basic_form.rb文件

我已经用谷歌搜索了这个问题,或者是关于命名空间模型的,但是我还没有找到更多的信息……我想念什么?缺少哪一步?

如果我将basic_form.rb移至app / models,并删除“ Common”名称空间,则该应用程序会很好。

Zwippie

您尚未定义模块名称空间Common,因此它尚不存在。尝试这个:

module Common
  class BasicForm < ActiveRecord::Base
    # class code ...
  end
end

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章