为什么这个 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/