如何使用JSON数据提供两个不同的视图?

时间:2012-10-19 20:10:22

标签: jquery ruby-on-rails ajax ruby-on-rails-3

我的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地图上创建了标记。第二个视图端口是一个简单的表。

  <% @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数据的请求。一个用于表视图,一个用于Map。这对我来说是不可接受的。 Map和Table需要一次提供相同的数据,但由于Rails已在服务器上解析,因此我无法使用JSON数据填充表。

有人知道一些与Rails,Ajax和分页配合得很好的表吗?

1 个答案:

答案 0 :(得分:0)

A good enough answer for this one。考虑到这个问题的参数,我认为这是最干净的解决方案。

基本上我创建了一个RESTful服务,允许我搜索某些东西,然后使用Backbone库来显示我的结果。我需要更多的工作,然后是一个简单的Rails组件,因为你需要做JS但是要正确地支持AJAX,它是要走的路。