我正嘗試創建一個時間軸,併爲用戶輸入一個新事件。我決定使用http://timeline.verite.co/的時間線 - 我可以爲每個用戶創建一個表單,以輸入一個新事件,並將該事件保存到數據庫中沒有問題。然而,我很難弄清楚的是:Rails - 將數據庫中的數據轉換爲JSON
a)從數據庫獲取數據並將其轉換爲時間軸將會滿意的正確JSON格式 - 我不知道從哪裏開始!我是否需要使用與JSON屬性相同的名稱命名數據庫中的列「標題」?那麼我怎麼把它變成JSON?
b)如何即時生成JSON文檔?該代碼需要將數據鏈接到JSON文檔。
這是我能弄清楚如何做到這一點的唯一方法 - 就好像我要爲每個用戶生成一個JSON文檔並插入每個新事件,然後從中讀取,然後肯定存在一些安全問題JSON文檔比沒有它的人更容易下載,而不是數據庫中的數據?
任何幫助或指針將不勝感激 - 我是相當新的Rails,並沒有真正觸摸JSON呢!謝謝。
萬一有幫助,通過時間軸所需要的數據格式是這樣的:
{
"timeline":
{
"headline":"The Main Timeline Headline Goes here",
"type":"default",
"text":"<p>Intro body text goes here, some HTML is ok</p>",
"asset": {
"media":"http://yourdomain_or_socialmedialink_goes_here.jpg",
"credit":"Credit Name Goes Here",
"caption":"Caption text goes here"
},
"date": [
{
"startDate":"2011,12,10",
"endDate":"2011,12,11",
"headline":"Headline Goes Here",
"text":"<p>Body text goes here, some HTML is OK</p>",
"tag":"This is Optional",
"asset": {
"media":"http://twitter.com/ArjunaSoriano/status/164181156147900416",
"thumbnail":"optional-32x32px.jpg",
"credit":"Credit Name Goes Here",
"caption":"Caption text goes here"
}
}
],
"era": [
{
"startDate":"2011,12,10",
"endDate":"2011,12,11",
"headline":"Headline Goes Here",
"text":"<p>Body text goes here, some HTML is OK</p>",
"tag":"This is Optional"
}
]
}
}
您可以使用'data_hash.to_json'輕鬆將Ruby Hash轉換爲JSON。如何將數據從數據庫轉換爲哈希是另一個問題,它很大程度上取決於您的數據庫結構以及您對Ruby和ActiveRecord的知識。 – khustochka
好吧,我可以將數據作爲Ruby對象從數據庫中提取出來,然後將其轉換爲JSON?我將如何做到這一點,然後把它變成正確的格式?正如你可能知道的那樣,我對db內部工作的瞭解是相當有限的 - 我只創建了創建和讀取數據的應用程序,而不是以這種方式篡改數據。任何幫助都會很棒,但是恐怕你可能需要爲我拼寫一下!謝謝。 – ecs
我同意** saverio **的回答,因爲JSON結構像你需要的那樣複雜,使用JSON模板而不是'to_json'好得多。 – khustochka