Rails从控制器调用Ajax调用&在视图中更新div

时间:2013-12-13 23:38:50

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

我是Ajax的新手。当javascript中的其他现有函数执行时,我想从控制器执行此ajax函数调用以查看,即从控制器获取最新的@trip模型并更新此代码的div而不刷新整个页面。我在网上和这里搜索,我发现从视图到控制器的ajax请求,但没有从控制器通过div更新/重新加载查看。 任何帮助都是值得欣赏的。

控制器:

def show
    @trip = Trip.find(params[:id])
    ....

    respond_to do |format|
      format.html
    end
  end

查看:

<div class="clear"></div>
        <p><hr/></p>
        <h3>Activity Record</h3>
        <div style="color:black;">
        <% @trip.activities.each do |a| %>
        <%= a.created_at.strftime("%m.%d.%Y %T") rescue nil %> - <%= a.description %><br/>
        <% end %>
        <%= @trip.created_at.strftime("%m.%d.%Y %T") rescue nil %> - <b>Image Received</b><br/>
         </div>
    </div>

1 个答案:

答案 0 :(得分:0)

在视图中,我给了div的名称&#39; activityHistory&#39;

 <div class="clear"></div>
                    <p><hr/></p>
                    <h3>Activity Record</h3>
                    <div id="activityHistory" style="color:black;">
                        <% @trip.activities.each do |a| %>
                              <%= a.created_at.strftime("%m.%d.%Y %T") rescue nil %> - <%= a.description %><br/>
                        <% end %>
                        <%= @trip.created_at.strftime("%m.%d.%Y %T") rescue nil %> - <b>Image Received</b><br/>
                  </div>
                </div>

并使用此javascript函数在每次单击触发器事件按钮时重新加载div

//this method refresh div, show latest history activity and relies on pusher event
    function reloadLatestActivityDiv(){
        $("#activityHistory").load('/trips/<%=@trip.id%> #activityHistory');
    }