如何在Rails中创建删除全局确认消息?

时间:2012-12-19 04:55:37

标签: ruby-on-rails

我的应用中的每个link_to :method => :delete都包含:data => {:confirm => "Are you sure?"}

本着DRY的精神,是否可以设置此确认消息,使其自动显示?

2 个答案:

答案 0 :(得分:2)

最简单的方法是使用辅助方法

== application helper

def delete_link(object)
    raw (link_to 'Destroy', object, method: :delete, data: { confirm: 'Are you sure?' })
end

==查看

<% @jobs.each do |job| %>
  <tr>
    <td><%= job.title %></td>
    <td>
        <%= delete_link(job) %>
    </td>
  </tr>
<% end %>

我检查它有效:D

HTH

答案 1 :(得分:1)

您可以使用jQuery执行此操作,基本上添加一些数据(如果它包含data-method="delete"

$(document).ready(function() {
    $('a[data-method="delete"]').data('confirm','Are you sure?');
    $('a[data-method="delete"]').attr('data-confirm','Are you sure?');
});

http://jsfiddle.net/vuQU7/

请注意,您必须单独添加数据并设置属性 - 根据Rails UJS代码,它将检查一个或另一个(或两者)。所以设置两者都将确保它有效。