2011-02-08 117 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" } 
];