gpt4 book ai didi

ruby-on-rails - Rails 可安装引擎 : how should apps set configuration variables?

转载 作者:行者123 更新时间:2023-12-03 23:24:35 25 4
gpt4 key购买 nike

我有一个名为 Blog 的可安装引擎应用程序可以使用。

允许使用引擎的应用程序设置配置变量(如 site_name)的最佳方法是什么? (以便引擎可以在设计中显示它)?

更新:

我见过一些 gems 创建了一个 'config/initializers/gem_name.rb' 文件。是否有任何规范说明如何:

  • 在引擎端创建一个类似的文件
  • 将其复制到应用程序一侧
  • 如何访问引擎端的那些设置变量?

  • 我尝试创建 Blog.site_name = "My Site"在应用程序的 config/initializers/blog.rb文件,但得到一个未定义的方法错误。

    最佳答案

    想出了一个更好的解决方案,它还允许您设置默认值(以防使用引擎的应用程序未指定配置)...

  • 在应用程序的 /config/initializers/blog.rb 中创建配置变量像这样:
  •     Blog.setup do |config|
    config.site_name = "My Site Name"
    end
  • 在您的引擎中 /lib/blog/engine.rb像这样设置默认值:
  •     module Blog

    self.mattr_accessor :site_name
    self.site_name = "Site Name"
    # add default values of more config vars here

    # this function maps the vars from your app into your engine
    def self.setup(&block)
    yield self
    end

    end
  • 现在您可以像这样简单地访问引擎中的配置变量:
  • Blog.site_name干净多了。

    关于ruby-on-rails - Rails 可安装引擎 : how should apps set configuration variables?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20734766/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com