我有几个模型都包含相同的模块:
class MyModel1 < ActiveRecord::Base
  include MyModuleName
end
class MyModel2 < ActiveRecord::Base
  include MyModuleName
end
class MyModel3 < ActiveRecord::Base
  include MyModuleName
end
我没有在每个模型中包含模块,而是尝试了以下方法:
class MyNewModel < ActiveRecord::Base
  include MyModuleName
end
class MyModel1 < MyNewModel
end
class MyModel2 < MyNewModel
end
class MyModel3 < MyNewModel
end
但最终会出现一个错误,表示该my_new_models表不存在.
什么是避免重复的正确方法include MyModuleName?
为了让模型继承技术工作,你需要设置self.abstract_class = true在MyNewModel:
class MyNewModel < ActiveRecord::Base
  self.abstract_class = true
  include MyModuleName
end
class MyModel1 < MyNewModel
end
class MyModel2 < MyNewModel
end
class MyModel3 < MyNewModel
end
| 归档时间: | 
 | 
| 查看次数: | 177 次 | 
| 最近记录: |