1
由于我的应用程序现在变得有点大,我正尝试使用命名空间来帮助组织我的模型更好一点。模块/类冲突试图在Rails中命名空间模型
我创建了一个app/models/theme.rb文件,它将充当通往主题子目录中的其他主题相关模型的网关。
# app/models directory
theme.rb
theme/compiler.rb
theme/instance.rb
theme/revision.rb
凡instance.rb将开始类似....
class Theme::Instance < ActiveRecord::Base
end
和theme.rb简直是...
class Theme
def initialize(args)
# some stuff here
end
end
但只要我创建一个使用新模式它会尝试按照以下方式覆盖新的theme.rb。
rails g model theme::revision
#new theme.rb
module Theme
def self.table_name_prefix
'theme_'
end
end
我可以摆脱模块和DEF self.table_name_prefix方法复制到每个班级,但似乎并不很干。我想使用表前缀,因为它使数据库中的事情更加明显。有没有一种“正确”的Rails方式来解决这个问题,我错过了?
我想'Theme' ** **应该是一个模块,而不是一类。这对于'Theme :: Instance'语法更有意义。 – 2015-03-02 17:18:17