2017-06-23 4 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 

方法を含み、編集ボタンをタイトルバーに表示されていることを行うことができました私は信じています)、その横に印刷ボタンがあります。 (上のコードのコードから)。

現在の月と年のレコードの編集ボタンを表示/表示ページに表示するにはどうすればよいですか?

答えて

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を参照してください。

関連する問題