2017-06-23 31 views
0

我想删除活动管理员显示页面上的编辑按钮,除了月份和年份等于当前月份和年份的记录外。如何删除活动管理秀中的编辑按钮

我能做到这一点在指数

if (es.month == Date.today.strftime("%m").to_i) && (es.year == Date.today.strftime("%Y").to_i) 
    span link_to 'Edit', "/executive_summaries/#{es.id}/edit" 
    end 

我executive_summaryies.rb包括

ActiveAdmin.register Executive::Summary do 
    menu :parent => 'Reports' 

    config.batch_actions = true 

. . . 

    action_item :only => :show do 
    link_to_function("#{ActiveAdmin::Iconic.icon(:document_stroke)} Print Executive Summary".html_safe, "javascript:print()") 

    end 

. . . 

controller do 

. . . 

    def edit 
     @run_js_functions = %w(ExecutiveSummaries.init) 
    end 

    def show 
     @run_js_functions = %w(ExecutiveSummaries.accordion) 
    end 

    . . . 

end 

方式的代码,目前,编辑按钮显示在标题栏(默认情况下我相信),旁边有一个打印按钮。 (从上面的节目中的代码)。

如何在show/view页面上显示当前月份和年份的记录的编辑按钮?

回答

0

在你的executive_summaryies.rb的顶部,你应该可以做这样的事情,它将完全删除编辑按钮。

ActiveAdmin.register Executive::Summary do 
    actions :all, except: [:edit] 
    ... 
end 

现在,编辑按钮不显示在所有的,然后你可以将其重新添加条件:

ActiveAdmin.register Executive::Summary do 
    actions :all, except: [:edit] 
    ... 

    action_item only: :show do 
    if show_edit_button? 
     link_to 'Edit', '/executive_summaries/#{resource.id}/edit' 
    end 
    end 
end 

显然,show_edit_button?方法你有你想要的逻辑来定义用来确定按钮是否显示。另外,您可以使用resource来引用当前对象。

0

考虑将逻辑放在自定义授权适配器中。 查看documentation了解更多详情。

相关问题