我对这一切都很陌生,所以请对我的知识做最坏的假设。关于
record = tablename.new
result["top"].each do |r| #result is the answer from a variable length JSON
if ActiveRecord::Base.connection.column_exists?(:tablename, r["aaa"]["bbb"] )
record.update_attribute(r["aaa"]["bbb"] , r["ccc"] )
else
ActiveRecord::Base.connection.add_column(:tablename, r["aaa"]["bbb"] , :integer )
#record.update_attribute( r["aaa"]["bbb"] , r["ccc"] )
end
record.save
我收到此错误,因为我在 update_attribute 中使用变量而不是符号:
undefined method `stringify_keys' for "contents of r["aaa"]["bbb"]":String (NoMethodError)
但是我不能使用符号,因为我实际上并不知道列的名称 - 它都是动态生成的,正如您从这一行中看到的那样:
ActiveRecord::Base.connection.add_column(:tablename, r["aaa"]["bbb"] , :integer )
简而言之,我怎样才能适应具有 update_attribute 的可变列名?