【问题标题】:Shorten call to Rails.application.secrets for readability缩短对 Rails.application.secrets 的调用以提高可读性
【发布时间】:2014-12-17 02:57:40
【问题描述】:

我知道这有点吹毛求疵,但是当我试图转而使用新的 [ish] config/secrets.yml 文件时,这一直困扰着我一整天。它只是让我的代码很难看。我知道,如果有人试图理解我的项目,那么转向不那么标准的东西可能会成为一个问题……但这个项目非常私密,我是唯一一个在做这个项目的人。

它似乎是ActiveSupport::OrderedOptions 的一个实例,所以我似乎不能alias 它。

我如何将SECRET 之类的东西别名为Rails.application.secrets,以便我可以调用SECRET.some_key 来获取返回值?

我正在寻找一种解决方案:

  • 对性能的影响最小
  • 安全影响最小到零

非常感谢!

【问题讨论】:

  • 为什么不将Rails.application.secrets 分配给SECRET@secret 某处。 SECRET = Rails.application.secrets 在控制台中为我工作;然后我可以访问SECRET.secret_key_base 等。
  • 哇!我真的没想到会这么简单。我想补充一点,我只是把它放在我的config/application.rb 文件中,以便在我的整个项目中访问。如果您不介意将其作为答案提交,我很乐意将您的答案标记为正确。不过,如果有我没有想到的潜在安全隐患,我想听听其他人的意见。谢谢!

标签: ruby-on-rails security ruby-on-rails-4 readability


【解决方案1】:

为什么不直接将Rails.application.secrets 分配给SECRET@secret 某处?

SECRET = Rails.application.secrets 

在控制台中为我工作;然后我可以访问SECRET.secret_key_base 等。

【讨论】:

    【解决方案2】:

    如果您不喜欢 SECRET 常量的美感,另一种方法:

    module Secret
      def self.for
        Rails.application.secrets
      end
    end
    

    会缩短

    Rails.application.secrets.my_value
    

    到:

    Secret.for.my_value
    

    【讨论】:

      猜你喜欢
      • 2020-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-08
      • 1970-01-01
      • 2018-06-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多