2011-02-08 8 views
1

私はtwitterライブラリを使用してつぶやきを取得し、jqueryを使用して自分のビューに1つずつ表示するレールアプリを持っています。私はコントローラからビューにツイートを転送するための最良の方法は何であるのか少し不確かです。私が持っている2つのアイデアがあります:Railsの部分的なベストプラクティス

  1. は、コントローラ/モデルにおけるTwitterのJSONを取り戻すjqueryのを使用してビューに渡し、その後、DOMの構築方法でHTMLを構築します。

  2. コントローラ/モデル内のtwitter jsonを取得し、htmlでつぶやくリストを表示する部分をレンダリングし、htmlパーシャルをjqueryで渡します。

これらの方法のいずれかが他の方法よりも優れていますか?これを行うには完全に良い方法がありますか?

助けがあれば助かります。

答えて

2

partialは、ページに直接htmlを作成したい場合は、結果のインデックスを作成します。

javascript + jsonのアイデアは、実装するのが簡単ではなく、あまり多くはありません。

+0

なぜ部分より割り出し可能である:

映画の変数は次のようになりますか? – Danny

+0

JavaScriptを使わずにページが読み込まれたときにページに表示できるのは、部分的であればページに表示できるということだけです。ページが読み込まれた後にコンテンツを表示するためにJavaScriptを使用する必要があるときは、そのコンテンツは検索エンジンによって索引付けされないことがあります(ただし、常にスマートになっています)。 – dontangg

3

ビューにデータを渡してJSONにレンダリングする必要はありません。あなたは自分のコントローラでこれを行うことができます。

render :json => tweets 

私はこれが公式jQuery Templates pluginのための完璧なユースケースだと思います。主な機能、tmplは、それを使用する方法の素晴らしい例がたくさんあります。

私はそのドキュメントから例を簡単に要約しようとします。基本的に、あなたはこのようなscriptタグ内のHTMLテンプレートを置く:次に

<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"); 

この例では想定していidがmovieListのul要素があり、変数にあるすべてのムービーのリストにli要素が追加されていることを確認してください。

var movies = [ 
    { Name: "The Red Violin", ReleaseYear: "1998" }, 
    { Name: "Eyes Wide Shut", ReleaseYear: "1999" }, 
    { Name: "The Inheritance", ReleaseYear: "1976" } 
]; 
関連する問題