ruby-on-rails - 在 yaml 文件中传递变量

标签 ruby-on-rails ruby-on-rails-3 yaml

我喜欢使用 i18n 和 yml。我想要我自己的 yaml 文件来做类似的事情。那是访问 yaml 文件中的变量。像这样的东西

name:
  address: "%{city} %{street}"

添加变量可以传递类似 some_method('name.address', :city => 'my city', :street => 'my street') 的内容

在 i18n 我们可以做
en:
 message:
  welcome: "Hello %{username}"

要调用它,我们可以使用 t("message.welcome", :username => 'admin')
我该如何实现?

最佳答案

调用后是替换。举个例子。

Yaml.load_file('locale/en.yml')['en']['message']['welcome'].gsub('%{username}', username)

所以在方法中它可以是:
  def t(key, changes)
    result = yaml_locale['en']
    key.split('.').each |k|
      result = result[k]
    end
    changes.each_keys do |k|
      result.gsub!("%{#{k}}%", changes[k])
    end
    result
  end

稍后重构它,但想法是这样的。

原方法在这里:https://github.com/svenfuchs/i18n/blob/master/lib/i18n.rb#L143管理很多认为我不:)

关于ruby-on-rails - 在 yaml 文件中传递变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5578824/

相关文章:

ruby-on-rails - ide sublime2 如何找到方法定义

javascript - 将评论中的 URL 解析为链接

ruby-on-rails - counter_cache 可以与 has_many 一起使用吗?

azure - Azure 静态 Web 应用中的部署槽如何工作

ruby-on-rails - 使用 cucumber 进行 capybara 测试的背景

ruby-on-rails - 未定义的方法!在 rails 上使用MiniMagick的Carrierwave 3.1.3

ruby-on-rails - Ruby/Rails-从我的应用程序中删除ActiveAdmin

ruby-on-rails - Rails 3 查询多维数组

kubernetes - K8S : convert "kubeadm init" command-line arguments to "--config" YAML

file - 如何将Yaml文件加载到Dart中的Map?