イベントのパーシャルを表示するタイムラインビューがあるので、タイムラインビューで直接イベントをCRUDできます。私が今やろうとしているのは、イベントの横にある[削除]をクリックすると、削除部分が更新され、ユーザーがイベントが削除されたことを確認できるようにすることです。これを機能させることができないようです。ユーザーが[削除]をクリックするとイベントは削除されますが、パーシャルは更新されません。更新されたパーシャルを取得するには、ページを更新する必要があります。
また、削除されたイベントがそこにも表示されないように、「my-timeline」divの更新されたコンテンツを要求する方法を教えてもらえますか?ありがとう!
タイムライン/ショー:
<div id="my-timeline"></div>
<div id="delete_events">
<%= render :partial => "delete_events", :locals => { :events => current_user.events }%>
</div>
timeline / _delete_events.html.erb:
<%= button_to 'Delete', event, confirm: "Are you sure?", method: :delete, :remote => true %>
events / 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
タイムライン(一時的にここにのみあります!)をmy-timelinedivに生成するための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>