0

私は Rails (および Web) プログラミングに非常に慣れていないため、このためにどのようなテクノロジを探すべきかさえわかりません。

Rails チュートリアルの最初の 5 つの章をダウンロードして実行しましたが、非常に単純な要求があります。

Web ページの左側に表を表示します。ユーザーがそのテーブルの要素をクリックすると、ページの右側に何か新しいものを表示したいと考えています。

テーブルを表示するページが既にあります。

<div class="center hero-unit">
   <div class="container">
   <h2>2012 Yearly Report</h2>
     <div class="row-fluid">
       <div class="span12">
           <div class="span4">
            <table border="1">
            </table>
           </div>
           <div class="span6">
                <!-- load stuff here based on what someone clicks on in the table -->
           </div>
         </div>
      </div>
   </div>
</div>

そして、すべてを表示するためにブートストラップ レイアウトを使用しています。「span4」でのユーザーの行動に基づいて「span6」div の内容を変更する方法がわかりません。

4

1 に答える 1

1

これは答えるのが難しい質問です。表示しようとしているデータの種類と、探している双方向性の種類によって異なります。

あなたはあなたが達成しようとしていることについて実際には多くの情報を提供していませんが、私が推測しなければならない場合、あなたはデータベースからデータをロードし、現在のページを離れることなくそれを要素に挿入しようとしています。これがAJAXの目的であり(チュートリアルは第11章で少し説明します)、大量のjavascriptが含まれます。これは、通常、Rubyのようなサーバー側言語の範囲を超えています。幸いなことに、railsには、大量のJavaScriptを記述しなくてもAJAX機能をWebアプリケーションに簡単に組み込むことができるヘルパーが含まれています(ただし、いくつかを記述する必要があります)。

例として、テーブルに記事のリストがあり、リンクをクリックしたときに記事の内容をdivに表示するとします。

最初のリンク:

<%= link_to article.name, article_url(article), :remote => true %>

リモートオプションは、それがAJAXリンクであることをRailsに通知します。

次に、記事のshowアクション用にjavascriptテンプレートをレンダリングする必要があります。show.js.erbという名前を付けます。

データをロードするdivが次のようになっていると仮定します。

<div id='article-content'></div>

show.js.erb次のものを含める必要があります。

$('#article-content').html("<%=javascript_escape @article.content %>");

このjavascript(rubyが埋め込まれている)コードは、リモートリンクの1つがクリックされたときに評価され、divのコンテンツを記事のコンテンツに置き換えます。

あなたにもっと多くの情報を与えるためにオンラインでたくさんのリソースがあります。railscastsがちょうど1週間前にこのトピックに関するエピソードをリリースしたようです。表示するにはサブスクリプションが必要ですが、それだけの価値があります(特に始めたばかりの場合)。

于 2012-10-10T00:31:04.560 に答える