我有一個像這樣的鍵值對列表。ruby on rails通過關鍵值元素列表循環訪問
PERSON_SUMMARY = {
first_names: %w(Mike Tim Jim kevin Alan Sara John Sammy t'Renée),
last_names: %w(Robinson Jackson Fox Terry Ali Brits Tyson Willis-St.\ Paul),
offenses: [
{ offense_name:'Speeding',
penalties: [
{ penalty_name: 'Prison', severity: 'Medium' },
{ penalty_name: 'Ticket', severity: 'Low' }
]
},
{ offense_name:'Shoplifting',
penalties: [
{ penalty_name: 'Prison', severity: 'Medium' },
{ penalty_name: 'Fine', severity: 'Low' }
]
}
]
}
我想存儲並打印offense_name,** ** penalty_name和嚴重性一個接一個,但我不能得到正確的語法。
這裏是我到目前爲止已經試過:
PERSON_SUMMARY[:offenses].each do |offense|
offense_name = offense[:offense_name]
offense[:penalties].each do |penalty|
penalty_name = penalty[:penalty_name]
severity_val = penalty[:severity]
end
end
編輯:最後,我需要通過這個功能,把它插入到數據庫表:
PersonOffense.where(person_id: person.id).first_or_create(
name: offense_name,
penalty: penalty_name ,
severity: severity_val
end
但是我發現一個問題,有上面是多個罰款名稱。不知道如何插入它們。
例如, 我需要在我的表中插入兩次犯規,以便表中有兩個條目。
Speeding Prison Medium
Speeding Ticket Low
編輯:我喜歡傑西的答案如下。我怎樣才能使用它來按照我上面的方法將它插入(按照下面的Jesse給出的答案插入犯罪號,罰名和嚴重性)
什麼不適合您的解決方案?你想達到什麼目的? – doesterr 2013-03-14 02:20:49
就像我上面提到的,我試圖存儲和打印「罪名」,「刑罰名稱」和嚴重程度。我得到這個錯誤的語法錯誤,意想不到的關鍵字,期待')'在上面的最後一行 – newbie 2013-03-14 02:32:56
嗯,你的解決方案對我來說很好(Renée中的é字符除外) – doesterr 2013-03-14 02:35:53