在Rails应用程序中,让Destroy操作同时出现警告 - “你确定你要删除它吗?”典型代码如下所示:
link_to("Destroy", "http://www.example.com", :method => :delete, :confirm => "Are you sure?")
ActiveAdmin中是否有办法仅为一个模型(不是全局)自定义确认字符串?我看到字符串是从active_admin.delete_confirmation
翻译键加载的。字符串可以是特定于模型的吗?
答案 0 :(得分:3)
由于ActiveAdmin 2.7特定于模型的翻译可以通过将其放置到en.yml中的active_admin.resources组中进行自定义。
active_admin:
resources:
user:
delete_confirmation: Are you sure?
答案 1 :(得分:2)
我认为你不能用配置改变字符串。 但是,您可以更改默认操作:
索引表:https://github.com/activeadmin/active_admin/blob/master/docs/3-index-pages/index-as-table.md
index do
column :title
actions defaults: false do |post|
link_to("Destroy", "http://www.example.com", :method => :delete, :confirm => "Are you sure?")
end
end
显示页面:https://github.com/activeadmin/active_admin/blob/master/docs/8-custom-actions.md#action-items
action_item only: :show do
link_to("Destroy", "http://www.example.com", :method => :delete, :confirm => "Are you sure?")
end
答案 2 :(得分:1)
您还可以通过Javascript克服此ActiveAdmin限制。
这是app/assets/javascripts/active_admin.js
的一个例子:
//= require active_admin/base
$( document ).ready(function() {
$('body.admin_companies a[data-method=delete]').
data('confirm', 'New confirmation text per model Company.\n Ok?');
$('body.admin_users a[data-method=delete]').
data('confirm', 'New confirmation text per model User.\n Ok?');
});
其中body.admin_companies
将此确认消息限制为模型公司的视图。
类似于body.admin_users
。
它适用于#index和#show。
唯一的缺点是它与i18n不能很好地配合(如果你需要多语言避免这种解决方案)。