0

同じデータを使用する 2 つのビュー ポートを持つ Rails アプリケーションがあります。次のような JSON 形式でデータを取得できます。

$.read(
    '/en/search/fetch_companies',
    { current_location_lat: 72, current_location_lng: 10, bounding_box: 10 },
    function (response) {
        for (var i = 0; i < response.length; i++) {
            var markerPosition = new google.maps.LatLng(response[i].latitude, response[i].longitude);
            var marker = new google.maps.Marker({
                position:markerPosition,
                map:map,
                title:"AJAX!"
                });
        }
    }
);

上記のコードは、Google マップ上にマーカーを作成します。2 番目のビュー ポートは単純なテーブルです。

  <% @companies.each do |company| %>
    <tr>
      <td>
        <address>
          <strong><%= company.name %></strong><br>
          <%= company.address %>
          <br>
          <%= company.city %>,<%= company.province %>
          <br>
          <%= company.postalcode %>
        </address>
      </td>
      <td>
        <%= link_to book_appointment_path(:choose_service, :company_id => company.id), :class => "btn btn-info btn-center-col" do %>
          <i class="icon-time icon-white"></i> Book Appointment
        <% end %>
      </td>
    </tr>
  <% end %>

今のところ、JSON データを取得するために 2 つのリクエストを送信しています。1 つはテーブル ビュー用で、もう 1 つはマップ用です。これは私には受け入れられません。Map と Table には一度に同じデータを供給する必要がありますが、Rails はサーバー上で解決されるため、テーブルに JSON データを入力することはできません。

Rails、Ajax、およびページネーションでうまく機能するテーブルについて知っている人はいますか?

4

1 に答える 1

0

これには十分な答えです。この質問のパラメータを考えると、これが最もクリーンなソリューションだと思います。

基本的に、何かを検索できるRESTfulサービスを作成し、Backboneライブラリを使用して結果を表示します。JSを実行する必要があるため、単純なRailsコンポーネントよりも多くの作業が必要ですが、AJAXを正しくサポートするには、それが最適な方法です。

于 2012-11-02T18:44:38.630 に答える