活动管理员:同一列中的多个操作类似于查看、编辑、删除
Active Admin: Multiple Actions in same column similar to View, Edit, Delete
我正在使用活动管理员 gem 为我在 rails 应用程序上的 ruby 创建一个管理控制台。我遇到了一个问题,我想对索引页面上的每个项目执行多个自定义操作,就像查看、编辑、删除一样。但是添加自定义操作时只显示最后一个而不是全部。
index do
column 'Instructor Name',:user
column 'Email Address', :email
column 'Phone Number', :phone
column 'website', link_to 'google', 'www.google.com'
column :bio
actions defaults: false do |application|
if application.user.instructor == 2
button_to 'Disapprove', instructor_deny_user_path(application.user.id), method: :put
else
button_to 'Approve', instructor_approve_user_path(application.user.id), method: :put
end
link_to "resume",getresume_instructor_applications_path(id: application.id)
end
end
只显示简历 link 而不是 Approve/Disprove 和简历
我做错了什么
试着把你的 approve/disapprove link 放在这样的列中,
column 'action' do |application|
application.user.instructor == 2 ? button_to 'Disapprove', instructor_deny_user_path(application.user.id), method: :put : button_to 'Approve', instructor_approve_user_path(application.user.id), method: :put
end
和默认 link 的简历。
actions defaults: false do |application|
link_to "resume",getresume_instructor_applications_path(id: application.id)
end
如果您的 ActiveAdmin >= 1.0.0.preX,您可以这样做:
actions defaults: false do |application|
if application.user.instructor == 2
action_item 'Disapprove', instructor_deny_user_path(application.user.id), method: :put
else
action_item 'Approve', instructor_approve_user_path(application.user.id), method: :put
end
action_item "resume", getresume_instructor_applications_path(id: application.id)
end
如果您使用 0.6.x:
actions defaults: false do |application|
if application.user.instructor == 2
text_node link_to 'Disapprove', instructor_deny_user_path(application.user.id), method: :put
else
text_node link_to 'Approve', instructor_approve_user_path(application.user.id), method: :put
end
link_to "resume", getresume_instructor_applications_path(id: application.id)
end
v1.3 的解决方案
actions defaults: false do |application|
if application.user.instructor == 2
item 'Disapprove', instructor_deny_user_path(application.user.id), method: :put
else
item 'Approve', instructor_approve_user_path(application.user.id), method: :put
end
item "resume", getresume_instructor_applications_path(id: application.id)
end
对我有用 - 感谢@littleforest 的评论
您还可以为间距添加, class: "member_link"
我正在使用活动管理员 gem 为我在 rails 应用程序上的 ruby 创建一个管理控制台。我遇到了一个问题,我想对索引页面上的每个项目执行多个自定义操作,就像查看、编辑、删除一样。但是添加自定义操作时只显示最后一个而不是全部。
index do
column 'Instructor Name',:user
column 'Email Address', :email
column 'Phone Number', :phone
column 'website', link_to 'google', 'www.google.com'
column :bio
actions defaults: false do |application|
if application.user.instructor == 2
button_to 'Disapprove', instructor_deny_user_path(application.user.id), method: :put
else
button_to 'Approve', instructor_approve_user_path(application.user.id), method: :put
end
link_to "resume",getresume_instructor_applications_path(id: application.id)
end
end
只显示简历 link 而不是 Approve/Disprove 和简历
我做错了什么
试着把你的 approve/disapprove link 放在这样的列中,
column 'action' do |application|
application.user.instructor == 2 ? button_to 'Disapprove', instructor_deny_user_path(application.user.id), method: :put : button_to 'Approve', instructor_approve_user_path(application.user.id), method: :put
end
和默认 link 的简历。
actions defaults: false do |application|
link_to "resume",getresume_instructor_applications_path(id: application.id)
end
如果您的 ActiveAdmin >= 1.0.0.preX,您可以这样做:
actions defaults: false do |application|
if application.user.instructor == 2
action_item 'Disapprove', instructor_deny_user_path(application.user.id), method: :put
else
action_item 'Approve', instructor_approve_user_path(application.user.id), method: :put
end
action_item "resume", getresume_instructor_applications_path(id: application.id)
end
如果您使用 0.6.x:
actions defaults: false do |application|
if application.user.instructor == 2
text_node link_to 'Disapprove', instructor_deny_user_path(application.user.id), method: :put
else
text_node link_to 'Approve', instructor_approve_user_path(application.user.id), method: :put
end
link_to "resume", getresume_instructor_applications_path(id: application.id)
end
v1.3 的解决方案
actions defaults: false do |application|
if application.user.instructor == 2
item 'Disapprove', instructor_deny_user_path(application.user.id), method: :put
else
item 'Approve', instructor_approve_user_path(application.user.id), method: :put
end
item "resume", getresume_instructor_applications_path(id: application.id)
end
对我有用 - 感谢@littleforest 的评论
您还可以为间距添加, class: "member_link"