ruby-on-rails - 带有 erb 的 YAML 未解析

标签 ruby-on-rails ruby yaml erb

为什么这个 yaml 文件无法解析?

---
<% sensor_types = YAML.load_file('db/seed-fixtures/sensor_type.yml') %>
<% sensor_types.each do |sensor_type| %>
sensor<%= sensor_type['id'] %>:
  id: <%= sensor_type['id'] %>
  title: <%= sensor_type['title'] %>
  unit: "<%= sensor_type['unit'] %>"
  valid_min: <%= sensor_type['valid_min'] %>
  valid_max: <%= sensor_type['valid_max'] %>
  codename: <%= sensor_type['codename'] %>
  scale_base_ten_exponent: <%= sensor_type['scale_base_ten_exponent'] %>
<% end %>

此文件用于我测试中的 fixture,它由 rspec 从 fixtures 目录加载。

当我尝试时,我得到:“在第 4 行第 28 列的上下文中不允许映射值(Psych::SyntaxError)”

最佳答案

您不能像基本 YAML 文件那样加载包含 ERB 的 YAML 文件。检查这个 post .

你可以做的是(在规范初始化器或 before 钩子(Hook)中):

FIXTURE_CONFIG = YAML.load(ERB.new(File.read("#{Rails.root}/path_to_your_file.yml.erb")).result)

然后在你的测试中使用这个变量。

关于ruby-on-rails - 带有 erb 的 YAML 未解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25115384/

相关文章:

ruby-on-rails - Ruby 动态解包行

ruby-on-rails - Rails - 同时创建 child 和 child 的 child

Docker Compose 为 YAML 别名和 anchor 合并数组

amazon-web-services - CloudFormation 在 Fn::If 内部使用 Fn::Sub

ruby-on-rails - Rails 服务器正在运行,但无法连接到 localhost :3000

ruby-on-rails - 片段缓存和预加载 : How to get the best of both worlds?

ruby-on-rails - 将额外结果添加到关联收集代理结果

ruby-on-rails - Slicehost 上的 Ubuntu 8.10 监控软件?

ruby - 获取文件更改的最新提交

java - SnakeYaml "Unable to find property error"