请问各位,我的 model 目录里有多级目录比如 models/materiale/oitm.rb models/materiale/ocrd.rb
我需要 ocrd has_many :oitms 这个需要怎么写?我按平常的写法保存数据时报错了 uninitialized constant Oitm
指定 class_name 应该可以
在 config/application.rb 里要加一句
config.autoload_paths += Dir[Rails.root.join('app', 'models', '{**}')]
#1 楼 @miclle 这个我试过不行
#2 楼 @5swords 谢谢,我试试
#3 楼 @dxwts 我翻了以前的代码
/app/models/activity.rb /app/models/category/activity_category.rb
class Activity < ActiveRecord::Base paginates_per 12 belongs_to :user belongs_to :category, :class_name => "Category::ActivityCategory" delegate :name, :description, :to => :category, :prefix => true, :allow_nil => true mount_uploader :cover, PictureUploader end
不知道你是怎么写的
另外 ruby-china 源代码中也有
class User ... has_many :notifications, :class_name => 'Notification::Base', :dependent => :delete ... end
/app/models/user.rb /app/models/notification/base.rb
#5 楼 @miclle 恩 我也有看到 ruby_china 的代码有这样写,然后也也试了一下,不过没成功,可能还是我哪里写的不对,我再仔细检查一下
#5 楼 @miclle 抱歉,确实是我错了
是不是命名空间的问题? models/materiale/oitm.rb
要写成
class Materiale::Oitm < ActiveRecord::Base ... end
#8 楼 @miclle 我用了 mongoid,所以 model
class Materiale::Oitm ... end
之前写错,我把单词写错了,没注意检查(粗心可耻啊)
#8 楼 @miclle 非常感谢