我有一段代码,这行:
user.attributes.except('created_at','created_by','updated_at','updated_by','id')
工作(返回散列与传递的键作为从中删除的参数),而将其更改为:
user.attributes.except(:created_at,:created_by,:updated_at,:updated_by,:id)
不(返回的哈希仍然包含所有键).这怎么可能?
解决方法
因为属性返回带有键的哈希,而不是符号.
http://apidock.com/rails/ActiveRecord/Base/attributes
正如其他人所说,String!= Symbol.
puts :a == 'a' # => false