Ruby on rails 删除散列结果中的列名称

Ruby on rails 删除散列结果中的列名称,ruby-on-rails,ruby,hash,Ruby On Rails,Ruby,Hash,我想删除id和abc_id,在迭代tablename.attributes时创建并更新了。这是我能想出的解决办法。还有其他我能用的最好的方法吗。谢谢 chash = tablename.attributes // outputs hash of key and value list = ["A", "B", "created_at", "updated_at"] list.each do |l| chash = chash.tap {|c| c.delete(l)} end 你可以使用

我想删除id和abc_id,在迭代tablename.attributes时创建并更新了。这是我能想出的解决办法。还有其他我能用的最好的方法吗。谢谢

chash = tablename.attributes // outputs hash of key and value
list = ["A", "B", "created_at", "updated_at"]
list.each do |l|
   chash = chash.tap {|c| c.delete(l)}
 end
你可以使用这个方法

或方法

或方法

在Rails中,可以使用以下方法:

chash.delete_if {|k,_| list.include? k}
chash.reject {|k,_| list.include? k}
chash.select {|k,_| !list.include? k}
chash.except!(*list)