缩短对Rails.application.secrets的调用以提高可读性

时间:2014-12-17 02:57:40

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

我知道这有点挑剔,但是当我试图转移到使用新的[ish] config/secrets.yml文件时,这一整天一直盯着我。这只是让我的代码变得丑陋。我知道如果有人试图理解我的项目,那么转向不太标准的东西可能会成为一个问题......但是这个项目非常私密,我是唯一一个正在研究它的人。

它似乎是ActiveSupport::OrderedOptions的一个实例,所以我似乎无法alias

我如何将SECRET之类的内容替换为Rails.application.secrets,以便我可以调用SECRET.some_key来获取返回值?

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

  • 性能影响最小
  • 安全影响极小到零

非常感谢!

2 个答案:

答案 0 :(得分:0)

为什么不直接将Rails.application.secrets分配到SECRET@secret

SECRET = Rails.application.secrets 

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

答案 1 :(得分:0)

另一种方式,如果你不喜欢SECRET常数的美学:

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

会缩短

Rails.application.secrets.my_value

为:

Secret.for.my_value