【问题标题】:Access YAML keys as object or class member variables将 YAML 键作为对象或类成员变量访问
【发布时间】:2016-11-24 05:11:51
【问题描述】:

我正在制作config/locales/custom_error.yml 并将其加载到config/initializer/app_errors.rb。内容如下:

custom_error.yml

app_flow:
  errors:
    fill_important_fields: "We recommend you to Fill this form "

app_errors.rb

APP_ERROR = YAML.load_file("#{Rails.root}/config/locales/custom_error.yml")

现在在我的应用程序中,我可以访问像 APP_ERROR['app_flow']['errors']['fill_important_fields'] 这样的键 - 我读到了 This Question 但与我要求的不完全相同。

我的问题

我想访问这些嵌套键,例如 class methods / membersapp_error.errors.fill_important_fields

【问题讨论】:

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


    【解决方案1】:

    您可以将哈希转换为超级哈希! (用这个轻宝石:https://rubygems.org/gems/shash/versions/0.0.7

    APP_ERROR = YAML.load_file("#{Rails.root}/config/locales/custom_error.yml")
    APP_ERROR = APP_ERROR.to_shash
    

    例子:

    sa = { first_key: { key_nested: 'value' } }.to_shash
    # => #<Shash:0x000000099d0018 @hash={:first_key=>#<Shash:0x000000099cffa0 @hash={:key_nested=>"value"}>}> 
    sa.first_key.key_nested
    # => "value" 
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-13
    相关资源
    最近更新 更多