1

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

本着 DRY 的精神,是否可以将此确认消息设置一次,以便它在整个过程中自动出现?

4

2 回答 2

2

最简单的方法是有一个辅助方法

== 应用程序助手

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

高温高压

于 2012-12-19T05:12:55.850 回答
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 代码,它将检查一个或另一个(或两者)。所以设置两者将确保它工作。

于 2012-12-19T05:15:29.817 回答