我的应用程序中的每一个link_to :method => :delete
都包含一个:data => {:confirm => "Are you sure?"}
本着 DRY 的精神,是否可以将此确认消息设置一次,以便它在整个过程中自动出现?
我的应用程序中的每一个link_to :method => :delete
都包含一个:data => {:confirm => "Are you sure?"}
本着 DRY 的精神,是否可以将此确认消息设置一次,以便它在整个过程中自动出现?
最简单的方法是有一个辅助方法
== 应用程序助手
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
高温高压
您可以使用 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?');
});
请注意,您必须单独添加数据并设置属性 - 根据 Rails UJS 代码,它将检查一个或另一个(或两者)。所以设置两者将确保它工作。