Ruby on rails rails:指定yml中的项目列表

Ruby on rails rails:指定yml中的项目列表,ruby-on-rails,list,load,yaml,space,Ruby On Rails,List,Load,Yaml,Space,我想在yml文件中指定资源授权信息。管理员可以创建员工,并且只能查看公司 我使用YAML::load方法加载这个文件 如果对多个权限(操作、资源对)使用-symbol,则会出现解析错误。若我删除-symbol,那个么它只拾取第一个操作资源对。我认为load方法在解析时需要1个空格缩进,若我指定了-那个么违反了一个空格缩进条件,这就是错误的原因。有什么可能的解决办法 如果我在列表中使用-symbol 如果我不使用-symbol来列出 不确定这是否有帮助,但当我尝试加载第一个示例时,它对我很有用。也

我想在yml文件中指定资源授权信息。管理员可以创建员工,并且只能查看公司

我使用YAML::load方法加载这个文件

如果对多个权限(操作、资源对)使用-symbol,则会出现解析错误。若我删除-symbol,那个么它只拾取第一个操作资源对。我认为load方法在解析时需要1个空格缩进,若我指定了-那个么违反了一个空格缩进条件,这就是错误的原因。有什么可能的解决办法

如果我在列表中使用-symbol 如果我不使用-symbol来列出
不确定这是否有帮助,但当我尝试加载第一个示例时,它对我很有用。也许压痕不正确

无论如何,这在这里起作用:

需要“YAML”

something=YAML.load\u文件(“admin.YAML”)

哦,是的,让我添加对我有效的admin.yaml:

admin: - action: create resource: employee - action: show resource: company 管理员: -行动:创建 资源:雇员 -行动:表演 资源:公司
如果您在生成YAML时遇到问题,我会尝试在控制台中构建一个对象,然后将其转换为YAML以查看它的外观。例如:

test = { :admin => [
           {:action => "create", :resource => "employee"},
           {:action => "show", :resource => "company"}
          ] }

test.to_yaml
 => "--- \n:admin: \n- :action: create\n  :resource: employee\n- :action: show\n :resource: company\n" 
您甚至可以将其输出到一个文件中,前提是它使您的生活更轻松:

File.open('test.yaml', 'w') do |out|
  out.write(test.to_yaml)
end
这将产生:

--- 
:admin: 
- :action: create
  :resource: employee
- :action: show
  :resource: company

我没有完全匹配上面的内容,因为我使用了符号作为键,但我希望这能帮助您解决问题。

看看我的工作示例。我认为你关于“1个空格缩进”的假设是错误的,并导致了错误。
File.open('test.yaml', 'w') do |out|
  out.write(test.to_yaml)
end
--- 
:admin: 
- :action: create
  :resource: employee
- :action: show
  :resource: company