0

この件についてはRBateのRailscastをフォローしましたが、キャビアがあります。

ビューは、テーブルの変数を定義するフォームから始まります。[送信]をクリックすると、フォームは同じビューにポストバックし、部分(HTMLテーブルのみ)を再レンダリングします。これはAJAXではなく、すべてフォームパラメータです。

RBatesは単一の変数を使用し、その変数に対して.to_csvを呼び出します。paramsで定義された多くの変数を持つ複雑なテーブルがあるため、HTMLテーブル全体で.to_csvを呼び出す方法がわかりません。

結果だけをパーシャルにエクスポートできるようにする必要があります。

アイデアを事前に感謝します。

&&&&&&&&必要に応じて、サンプルコード:&&&&&&&&

したがって、完全なコードはおそらく役立つというよりも混乱を招きますが、ここにスリム化されたバージョンがあります。

stats / reporter.html.erb:(stat_reporter_pathはこのURIと一致します)

<%= form_tag( :stat_reporter, method: :post ) do %>
    form is in here
    <%= submit_tag "Get my report" %>
<% end %>

<div>
    <%= render 'stat_select' %>
</div>

stats / _stat_select:

<table>
  <thead>
    <tr>...column heads...</tr>
  </thead>
  <tbody>
    <% @counties.each do |c| %>
      <td><%= c.name %></td>
        <% c.programs.each do |p| %>
          <td><%= p.name %></td>
            <% p.events.each do |e| %>
              <td><%= e.name %></td>
...and so on...
</table>

これがスクリーンショットですスクリーンショット

4

1 に答える 1

0

この投稿を振り返ると、私は次のようになります。

  1. 新しいビューへのリンクを作成し、URL内のすべての変数をパスします。
  2. そのビューは、すべての変数を使用して、to_csvメソッドの作成に使用できるHTML出力を作成します。
  3. csvファイルが作成されると、コントローラーは元のビューをレンダリングします。
于 2014-07-02T03:48:08.033 に答える