Chr*_*dla 2 ruby-on-rails ruby-on-rails-3 activeadmin
我想删除活动管理显示页面上任何记录的编辑按钮,月份和年份等于当前月份和年份的记录除外。
我能够在索引中做到这一点
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
Run Code Online (Sandbox Code Playgroud)
我的 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
Run Code Online (Sandbox Code Playgroud)
目前代码的方式是,编辑按钮显示在标题栏中(我相信默认情况下),旁边有一个打印按钮。(来自上面显示的代码)。
如何在显示/查看页面上显示当前月份和年份记录的编辑按钮?
首先从所有 #show 页面中删除编辑按钮:
config.action_items.delete_if {|item| item.name == :edit && item.display_on?(:show) }
Run Code Online (Sandbox Code Playgroud)
然后有条件地添加:
action_item :my_action, only: :show, if: proc { resource.year = Date.today.year && resource.month == Date.today.month }
link_to ...
end
Run Code Online (Sandbox Code Playgroud)
h/t https://hungnhotblog.wordpress.com/2016/09/14/conditionally-show-buttons-on-show-page/
| 归档时间: |
|
| 查看次数: |
4395 次 |
| 最近记录: |