2011-02-08 184 views
1

我有一個Rails應用程序,它使用Twitter庫來推送推文並在我的視圖中使用jQuery逐一顯示它們。但是我有點不確定將推文從控制器傳輸到視圖的最佳方式是什麼。這兩種觀點我是:Rails部分最佳實踐

  1. 找回控制器/模型Twitter的JSON,使用jQuery,然後建設有DOM構建方法的HTML把它傳遞給視圖。

  2. 獲取控制器/模型中的twitter json,呈現一個顯示html推文列表的部分,並使用jQuery傳遞該html部分。

其中一種方法比其他方法更好嗎?有沒有更好的方法來做到這一點?

任何幫助將是偉大的!

回答

2

如果您想直接在頁面上構建html,partials會使結果可編制索引。

javascript + json的想法應該更容易實現但不是太多。

+0

爲什麼是部分更可轉位? – Danny 2011-02-08 16:56:49

3

您不必將數據傳遞給視圖,然後渲染爲JSON。你可以做這在你的控制器:

render :json => tweets 

我認爲這是一個完美的使用情況下,本作的官方jQuery Templates plugin。主要功能tmpl有很多很好的例子來說明如何使用它。

我會盡力從他們的文檔中快速總結一個例子。基本上,你把一個HTML模板內script標籤是這樣的:

<script id="movieTemplate" type="text/x-jquery-tmpl"> 
    <li><b>${Name}</b> (${ReleaseYear})</li> 
</script> 

然後,你在一個JSON對象獲取數據並將其傳遞到tmpl功能是這樣的:

// movies contains your JSON data 
$("#movieTemplate").tmpl(movies).appendTo("#movieList"); 

這個例子假設您有一個ul元素,其id爲movieList,並且它將li元素附加到movies變量中找到的每個電影的列表中。

的電影變量將是這個樣子:

var movies = [ 
    { Name: "The Red Violin", ReleaseYear: "1998" }, 
    { Name: "Eyes Wide Shut", ReleaseYear: "1999" }, 
    { Name: "The Inheritance", ReleaseYear: "1976" } 
];