我想在yml文件中指定资源授权信息。 admin可以创建员工,只能查看公司。
我使用YAML :: load方法加载此文件。
如果我使用 - 符号用于多个权限(操作,资源对),则会产生解析错误。如果我删除 - 符号,那么它只选择第一个动作资源对。我认为load方法在解析时需要1个空格缩进,如果我指定 - 则会违反一个空格缩进条件,这是错误的原因。什么是可能的解决方案。
admin:
- action: create
resource: employee
- action: show
resource: company
admin:
action: create
resource: employee
action: show
resource: company
答案 0 :(得分:4)
不确定这是否有帮助,但是当我尝试加载第一个示例时,它对我有用。也许压痕不正确?
无论如何,这可以在这里工作:
要求“YAML”
something = YAML.load_file(“admin.yaml”)
哦,是的,让我添加适合我的admin.yaml:
admin: - action: create resource: employee - action: show resource: company
答案 1 :(得分:3)
如果您在生成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
我与上面的内容并不完全匹配,因为我使用符号作为键,但这应该可以帮助你,希望。