0

私はBackbone with Rails(3.1)を使用しています。私は検索ページを持っています。ページが読み込まれると、最初に検索された結果にページ番号が付けられたすべての結果が表示されます。後の検索要求はバックボーンを使用します。どのようにDRYに違反することなくこれを行うのですか?Rails&Backbone ::いつレンダリングするのですか?

私はBackboneですべてのリクエストを行うことができますが、(1)ページload(2)バックボーンでもう1つのリクエストがあり、起動時にコレクションを設定することが好きです。バックボーンのドキュメントから

読み込んでブートストラップモデル ときにアプリが最初にロード、それはあなたがページをレンダリングするために、必要になるだろう知っている初期モデルのセットを持つことが一般的です。それらを取得するために余分なAJAX要求を発砲する代わりに、そのデータをページに既にブートストラップしておくのが良い方法です。その後、リセットを使用して、コレクションに初期データを設定することができます。あなたはバックボーン内のすべてのレンダリングを行うことによってそれを行うと、サーバはデータのみを計算させることができ

<script> 
    Accounts.reset(<%= @accounts.to_json %>); 
    Projects.reset(<%= @projects.to_json(:collaborators => true) %>); 
</script> 
+0

すべての要求をバックボーンで行います。 (1)同じ方法ですべての検索を行う方が簡単です。(2)それが本当であるかどうかはわかりません。 –

答えて

1

:DocumentCloudでは、ワークスペースのERBテンプレートで、我々はこれらの線に沿って何かをします。最初の検索で

、あなたのRailsでJSONとしてあなたの検索結果が表示含まれます:

<script type='text/javascript'> 
    var search_results = new SearchResults(<%= results.to_json %>) 
</script> 

ですから、あなたのモデルを初期化し、バックボーンは、結果のレンダリングを行うことができます。

その後の検索では、レールからJSON結果を取得し、search_resultsコレクションをBackboneでリセットし、同じビューで結果をレンダリングします。

関連する問題