1) 我正在为 HAML 中的数据库抓取一些记录来显示,每行的属性方法返回一个散列。散列的键是字符串。我应该把这些 key 变成符号吗?我不确定调用 symbolize_keys
是否值得。即,
%td #{app['comment']}
或
%td #{app[:comment]
2) 我正在尝试对返回的哈希数组进行符号化,但它不起作用:
rows = Comment.all(:order => 'created DESC')
result = rows.each_with_object([]) do |row, comments|
comments << row.attributes.symbolize_keys
end
它实际上不是将符号化的散列插入评论数组吗?我还尝试了 symbolize_keys!
,但没有帮助。我做错了什么?
最佳答案
由于您使用的是 Rails,因此您可以访问 HashWithIndifferentAccess
所以你可以通过允许两者很容易地绕过你的“字符串或符号”问题:
h = HashWithIndifferentAccess.new(some_model.attributes)
puts h['id'] # Gives you some_model.id
puts h[:id] # Also gives you some_model.id
您的each_with_object
方法:
result = rows.each_with_object([]) do |row, comments|
comments << row.attributes.symbolize_keys
end
应该可以正常工作,所以我认为您的问题出在其他地方。
关于ruby-on-rails - 我应该符号化 key 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14866908/