Ruby on rails 如何在种子和rake任务中使用配置信息?(轨道4.1.x)

Ruby on rails 如何在种子和rake任务中使用配置信息?(轨道4.1.x),ruby-on-rails,rails-engines,Ruby On Rails,Rails Engines,不确定你是否真的会这么做。因此,如果你愿意,请建议其他方式 我希望为rails引擎创建一个配置文件,您可以为您的项目创建该配置文件,也可以在引擎中自己使用该配置文件 此配置文件将包含角色、组和权限等的默认名称 我们的想法是,如果您在实现引擎的项目中创建此配置文件,我们将使用您在种子文件和控制器操作中指定的默认名称来分配和检查这些特定的组、角色和权限 例如,在检查is\u admin?中,我查看用户是否属于admin角色 在你的应用程序中,你可能会称之为超级用户。因此,这就是这个配置文件的用武之地

不确定你是否真的会这么做。因此,如果你愿意,请建议其他方式

我希望为rails引擎创建一个配置文件,您可以为您的项目创建该配置文件,也可以在引擎中自己使用该配置文件

此配置文件将包含角色、组和权限等的默认名称

我们的想法是,如果您在实现引擎的项目中创建此配置文件,我们将使用您在种子文件和控制器操作中指定的默认名称来分配和检查这些特定的组、角色和权限

例如,在检查
is\u admin?
中,我查看用户是否属于
admin
角色

在你的应用程序中,你可能会称之为超级用户。因此,这就是这个配置文件的用武之地,它允许您为默认组和角色等创建自己的名称,而不必担心引擎崩溃或引擎必须硬编码

您仍然可以使用
is\u admin?
而不是检查
admin
角色,它现在知道要检查
超级用户

所以我的问题是:

  • 如何删除列名的硬编码检查,并将其替换为可以在应用程序中配置或在rails引擎中配置的“全局”变量
  • 我如何允许用户创建他们自己的配置文件,当您在应用程序中“安装”引擎时,引擎知道这些配置文件

    • 公开引擎的配置是一项非常简单的任务。以我的引擎为例:

      实际配置文件。这是您可以设置默认值的地方

      这样,该类中定义的任何内容都可以通过
      ComfortableMexicanSofa.config.some\u config\u选项访问

      现在,您需要一种公开配置的好方法:

      这样就可以有这样的接口:

      ComfortableMexicanSofa.configure do |config|
        config.cms_title = 'My Custom title'
      end
      
      现在,您可以使用初始值设定项,通过生成器移动到主机应用程序:


      因此,现在您可以使用配置使
      is\u admin?
      方法更加灵活。当然,总有一个选项可以从主机应用程序完全覆盖引擎的内容。

      我希望人们不要过度使用,因此配置文件。谢谢你。