多个应用程序轨道的相同模型的有效使用4

时间:2013-10-02 08:00:41

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-4

我正在使用两个模块的rails应用程序。

一个用于customer posts,另一个用于admin panel。我创建了我的customer模块。一旦客户模块完成,我也在考虑为管理员提供相同的模型。

如何有效地为客户和管理模块使用相同的模型。

任何人都可以在此建议我。

1 个答案:

答案 0 :(得分:0)

您可以使用相同名称但名称不同的模型。

您可以在模型文件夹中创建模块:

module ModuleName
  def self.table_name_prefix
    'module_name_'
  end
end

然后该模块的模型将在models / module_name目录中,如:

class ModuleName::ModelName < ActiveRecord::Base
  # attr_accessible :attr1, :attr2
end

您的迁移应该是这样的:

class CreateModuleNameModelNames < ActiveRecord::Migration
  def change
    create_table :module_name_model_names do |t|    
      t.timestamps
    end
  end
end

如果您想为不同的应用程序模块使用相同的型号名称,我认为这是一个相当明确的解决方案。

尝试rails g module_name/model_name - 它会建议你模型命名空间的结构。

还要查找STI(单表继承),例如here