【问题标题】:Rails use of yml fileRails 使用 yml 文件
【发布时间】:2016-03-25 03:41:14
【问题描述】:

我的第一个疑问是 yml 和 yaml 有什么区别。我应该使用哪一个。我还必须将我的标签放在 yml 文件中并加载它们。所以我不知道该怎么做。任何示例或教程都会非常有帮助。

【问题讨论】:

标签: ruby-on-rails


【解决方案1】:

设置 Rails 环境变量。在 Rails 中、本地和 Heroku 中使用 ENV 变量。 Rails 配置和环境变量的安全性。

环境变量

许多应用程序需要配置设置,例如电子邮件帐户凭据或外部服务的 API 密钥。您可以使用环境变量将本地配置设置传递给应用程序。

操作系统(Linux、Mac OS X、Windows)提供设置本地环境变量的机制,Heroku 和其他部署平台也是如此。这里我们展示了如何在 Unix shell 中设置本地环境变量。我们还展示了在没有 Unix shell 的情况下在应用程序中设置环境变量的两种替代方法。

Gmail 示例

config.action_mailer.smtp_settings = {
  address: "smtp.gmail.com",
  port: 587,
  domain: "example.com",
  authentication: "plain",
  enable_starttls_auto: true,
  user_name: ENV["GMAIL_USERNAME"],
  password: ENV["GMAIL_PASSWORD"]
}

您可以将您的 Gmail 用户名和密码“硬编码”到文件中,但这会将其暴露给有权访问您的 git 存储库的每个人。而是使用 Ruby 变量 ENV["GMAIL_USERNAME"] 来获取环境变量。该变量可以在 Rails 应用程序的任何地方使用。 Ruby 会将 ENV["GMAIL_USERNAME"] 替换为环境变量。

选项一:设置 Unix 环境变量

export GMAIL_USERNAME="myname@gmail.com"

选项二:使用费加罗宝石

  • 这使您可以方便地在代码中使用相同的变量 它们是由 Unix shell 还是 figaro gem 设置的 配置/应用程序.yml。 config/application.yml 文件中的变量 将覆盖在 Unix shell 中设置的环境变量。
  • 使用此语法在开发中设置不同的凭据, 测试或生产环境:

**

HELLO: world
development:
  HELLO: developers
production:
  HELLO: users

**

在这种情况下,ENV["HELLO"] 将在开发中产生“开发者”,在生产中产生“用户”,否则产生“世界”。

选项三:使用 local_env.yml 文件

Create a file config/local_env.yml:

希望这对您的回答有所帮助!!!

【讨论】:

    【解决方案2】:

    “yml”是用于“YAML”文件的扩展名,因此它们之间没有区别。

    在 Ruby 中加载 YAML 文件就像 YAML.load_file( <filename> ) 一样简单:它会将整个文件作为普通哈希读取。 要转换回 yaml,请使用同名方法 to_yaml

    您可以开始使用herehere

    【讨论】:

    • 如何在我的 Rails 应用程序中加载这些文件。如果我有一个 yml 文件,那么如何从那里在我的视图中加载数据
    猜你喜欢
    • 1970-01-01
    • 2014-12-28
    • 1970-01-01
    • 1970-01-01
    • 2021-11-14
    • 1970-01-01
    • 1970-01-01
    • 2021-09-25
    • 1970-01-01
    相关资源
    最近更新 更多