Rails 3使用链接呈现不同的部分

rma*_*002 2 ruby jquery ruby-on-rails ruby-on-rails-3

我有一个汽车经销商项目,在车里show.html我在页面左侧有照片库,右侧有车辆信息.车辆信息代码是部分命名的_vehicle_info,图库中的内容_car_gallery如下所示:

<div id="column-left">
    <%= render :partial => "car_gallery" %>
</div>
<div id="column-right">
    <%= render :partial => "vehicle_info" %>
</div>
Run Code Online (Sandbox Code Playgroud)

car_gallery我只能看到12张汽车的照片.

问题:

我想要做的是在car_gallerydiv 附近有一个链接,当用户点击它vehicle_info时,左侧的部分将被部分替换car_gallery_all(这部分包含该车的所有照片,不限于12).有没有简短的方法来做到这一点?请帮忙.

Fiv*_*One 6

由于缺乏代表编辑:

这将适用于rails 3.1,不确定大约3.0或更低..

此外,davidb的答案是,如果我理解正确,加载所有的图像,而不管用户是否想要查看他们或不-这种解决方案将只加载他们,如果链路上的用户点击查看他们..

.................................................. ............................

调节器

                def all_car_photos
                  ...
                  respond_to do |format|
                     format.js
                  end
                end
Run Code Online (Sandbox Code Playgroud)

视图

            <div id="column-left">
                <%= render :partial => "car_gallery" %>
            </div>
            <div id="column-right">
                <%= render :partial => "vehicle_info" %>
            </div>
            <%= link_to "Show All Photos", path_to_controller_action(@car), { :method => :get, :remote => true} %>
Run Code Online (Sandbox Code Playgroud)

all_car_photos.js.erb

            $('#column-right').html("<%= escape_javascript(render "car_gallery_all") %>");
Run Code Online (Sandbox Code Playgroud)

好吧,视图包含指向all_car_photos控制器操作的link_to方法.这里的关键是link_to包含:remote => true - 这使用烘焙的Rails AJAX功能提交请求.

控制器的动作做的事情需要做,但会响应的.js查看 - all_car_photos.js.erb - 这包含一行的jQuery将取代的"列权"的内容与"car_gallery_all"部分股利. .

现在已经很晚了,但这个设置应该可行..