2012-10-16 55 views
1

我有一个时间轴视图,显示事件的部分 - 因此您可以直接在时间轴视图上执行CRUD事件。我现在要做的就是让它在单击事件旁边的“删除”时删除部分刷新,以便用户可以看到该事件已被删除。我似乎无法得到这个工作 - 事件会在用户点击删除时被删除,但部分不会刷新。您必须刷新页面以获取更新的部分。Rails - jQuery/AJAX不刷新部分

另外,请有人告诉我,我会如何请求更新的“my-timeline”div的内容,以便删除的事件不会出现在那里呢?谢谢!

时间轴/显示:

<div id="my-timeline"></div> 
<div id="delete_events"> 
    <%= render :partial => "delete_events", :locals => { :events => current_user.events }%>  
</div> 

时间轴/ _delete_events.html.erb:

<%= button_to 'Delete', event, confirm: "Are you sure?", method: :delete, :remote => true %> 

事件/ delete.js.erb:

$('#delete_events').html('<%= escape_javascript(render :partial => "/timelines/delete_events", :locals => { :events => current_user.events }) %>'); 

事件控制器:

def destroy 
    @event = Event.find(params[:id]) 
    @event.destroy 

    respond_to do |format| 
     format.html { redirect_to current_user.timeline, notice: 'Event was successfully removed.' } 
     format.json { head :no_content } 
     format.js 
    end 
    end 

生成的时间表(只设在这里暂时!)到我的时间线的div的JavaScript:

<script> 
      $(document).ready(function() { 
       createStoryJS({ 
        type:  'timeline', 
        width:  '820', 
        height:  '600', 
        source:  '/users/<%= current_user.id %>/events.json?callback', 
        embed_id: 'my-timeline', 
        font:  'Euphoria-Droid', 
        debug:  true, 
        gmap_key: 'foo', 
        maptype: 'HYBRID' 
       }); 
      }); 
     </script> 

回答

1

我想你应该从

events/delete.js.erb 

    to 

events/destroy.js.erb 

,并通过写警报更改名称(” OK“)在destroy.js.erb检查控制来这里

希望它的作品

+0

傻我!!现在效果很好,谢谢!我将如何刷新时间线div的内容?它是由javascript本身生成的,所以不是我可以请求一个新的部分。谢谢! – ecs

+0

是刚刚刷新时间线的另一个部分 – Kashiftufail

+0

我不能这样做,时间轴不是一个部分,它是由JavaScript生成的。我如何请求div的更新内容?谢谢。 – ecs