我正在從一個從一個JSON提要導入到一個名爲Person的ActiveRecord的耙子任務。設置許多鍵/值對
人有很多屬性,而不是寫代碼行來設置每個屬性我試着使用不同的方法。
我得到的最接近的是如下所示。這在輸出到屏幕時效果很好,但是當我檢查實際上在ActiveRecord上設置的值時,它始終爲零。 因此,它看起來像我不能使用.to_sym解決我的問題?
有什麼建議嗎?
我還要提到的是,我剛開始使用Ruby,已經做了不少的Objective-C的,現在需要擁抱Interwebs :)
http = Net::HTTP.new(url.host, url.port)
http.read_timeout = 30
json = http.get(url.to_s).body
parsed = JSON.parse(json)
if parsed.has_key? 'code'
updatePerson = Person.find_or_initialize_by_code(parsed['code'])
puts updatePerson.code
parsed.each do |key, value|
puts "#{key} is #{value}"
symkey = key.to_sym
updatePerson[:symkey] = value.to_s
updatePerson.save
puts "#{key}....." # shows the current key
puts updatePerson[:symkey] # shows the correct value
puts updatePerson.first_name # a sample key, it's returning nil
end
感謝您的建議,這是讓我使用以下代碼: parsed。每個|鍵,值| if value.class!= Array updatePerson.write_attribute(key,value) end end updatePerson.save – iOSDevil 2010-05-28 12:53:58