zoukankan      html  css  js  c++  java
  • 通过js实现删除功能 ruby on rails

    (1)首先给删除按钮增加一个属性 remote: true,这样ujs将这个click动作转化为ajax调用,

     app/views/products/_product.html.erb

    <tr id="product_<%= product.id %>">
      <td><%= link_to product.id, product_path(product) %></td>
      <td id="product_<%= product.id %>_name"><%= product.name %></td>
      <td id="product_<%= product.id %>_price"><%= number_to_currency product.price, unit: "¥" %></td>
      <td id="product_<%= product.id %>_description"><%= product.description %></td>
      <td><%=l product.created_at %></td>
      <td>
        <%= link_to t('.edit', :default => t("helpers.links.edit")),
          edit_product_path(product), :class => 'btn btn-default btn-xs editProductLink',
          remote: true, data: {type: 'json'} %>
          <%= link_to t('.destroy',
            :default => t("helpers.links.destroy")),
            product,
            :remote => true,
            :method => :delete,
            :data => { :confirm => t('.confirm', :default => t("helpers.links.confirm", :default => 'Are you sure?')) },
            :class => 'btn btn-xs btn-danger' %>
      </td>
    </tr>

    (2)在controller的destory方法里,增加接收js的请求代码

      def destroy
        @product.destroy
        respond_to do |format|
          format.html { redirect_to products_url, notice: 'Product was successfully destroyed.' }
          format.json { head :no_content }
          format.js
        end
      end

    (3)新增文件app/views/products/destroy.js.erb,用的是fadeout方法,会渐变的将这一行隐藏掉。

    $('#product_<%= @product.id %>').fadeOut();
  • 相关阅读:
    VMware下ubuntu与win8共享文件时/mnt/hgfs目录为空的解决办法
    Flex Array内置排序方法的使用
    Flex 选项卡加载方式简介
    Flash Builder 4.6 基本设置
    Flash Builder 4.6 找不到所需的Adobe Flash Player
    2 python--工具pycharm
    1 python--安装
    安装aix补丁包
    python_day02 上节课知识点回顾
    vue组件局部与全局注册的区别
  • 原文地址:https://www.cnblogs.com/iwangzheng/p/4915113.html
Copyright © 2011-2022 走看看