【问题标题】:refresh table data after successful delete删除成功后刷新表数据
【发布时间】:2013-02-05 13:39:41
【问题描述】:

查看成功销毁后如何刷新部分事件列表

_event_list.haml(部分用于刷新)

%table.twelve#events
  %thead
    %tr
      -#%th Game/Event
      -#%th Result
      -#%th Team
      %th Opponent
      -#%th Date
      -#%th Time
      %th Location
      - if can? :update, @event
        %th.span1 Manager
  %tbody
    - @events.each do |event|
      %tr
        -#%td= event_display(event.event)
        -#%td= find_result(event)
        -#%td= event.team.name
        %td= link_to event.opponent.name, event
        -#%td= check_date(event)
        -#%td
          = "#{event.datetime.to_s(:event_time)} - #{end_time(event)}"
          %div{:style => 'font-size: .8em;color:#666; margin-top: 3px'}= "Arrived at #{arrive_time(event)}"
        %td
          - if event.location
            = link_to event.location.name, event, :rel => 'tooltip-html', :title => 'View ' + event.location.name
        - if can? :update, @event
          %td
            .btn-group
              %button.btn.dropdown-toggle{"data-toggle" => "dropdown"}
                %i.icon-pencil
                Manage
                %span.caret
              %ul.dropdown-menu
                %li= link_to "Edit #{event_display(event.event)}", edit_event_path(event)
                %li= link_to "Delete #{event_display(event.event)}", event, :method => :delete, :remote => :true, :class => 'deleteRecord'

destroy.js.erb $("events").html(" "events_list")) %>");

events_controller

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

    respond_to do |format|
      format.html { redirect_to(events_url,
                                :notice => "#{event_display_c(@event.event)} vs #{@event.opponent.name} was successfully deleted.") }
      format.js
    end
  end

【问题讨论】:

    标签: ruby-on-rails jquery destroy


    【解决方案1】:

    你应该在销毁操作中声明@events

    def destroy
      @event = Event.find(params[:id])
      @event.destroy
    
      respond_to do |format|
        format.html { redirect_to(events_url, notice: "#{event_display_c(@event.event)} vs #{@event.opponent.name} was successfully deleted.") }
        format.js { @events = Event.all # or something }
      end
    end
    

    然后将 destroy.js.erb 更改为(假设为 jquery)

    $("#events").replaceWith("<%= escape_javascript render('events_list') %>");
    

    【讨论】:

    • 当新表格通过路边地基渲染下拉菜单时,是否有任何原因停止工作?
    • 你能详细解释一下吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-28
    • 2012-08-03
    • 1970-01-01
    • 2017-05-22
    • 2021-05-16
    相关资源
    最近更新 更多