Rails使用yml文件

时间:2015-12-18 12:12:34

标签: ruby-on-rails

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

2 个答案:

答案 0 :(得分:0)

' YML'是您用于YAML'文件,所以它们之间没有区别。

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

您可以开始使用herehere

答案 1 :(得分:0)

设置Rails环境变量。在Rails中使用ENV变量,在本地和Heroku使用。 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设置的 配置/ application.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:

希望这有助于您的回答!!!