ruby-on-rails - 我应该符号化 key 吗?

标签 ruby-on-rails rails-activerecord

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/

相关文章:

sql - 将数组放入 WHERE IN 子句 Ruby on Rails

ruby-on-rails - Rails - 在 Controller 或 View 中使用类方法更好吗

ruby-on-rails - ActiveRecord::StatementInvalid(找不到表)

ruby-on-rails - 如何为定义的页面和记录总数选择数据?

ruby-on-rails - Ruby,动态查询事件模型

ruby-on-rails - activerecord 内存共享缓存

ruby-on-rails - 从哈希数组返回特定​​值 - JSON

ruby-on-rails - 未初始化常量 ActiveSupport::Dependency::Mutex (NameError)

ruby-on-rails - BigDecimal to_s 与 to_f 不匹配

ruby-on-rails - rails 复位单柱