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