2011-10-19 36 views
35

Tôi đang sử dụng Activeadmin cho giao diện quản trị trên ứng dụng tôi đang thực hiện (yêu thích nó) và tôi tò mò nếu có cách tắt liên kết "Tài nguyên mới" trong góc trên bên phải của trang hiển thị tài nguyên?Activeadmin vô hiệu hóa phương pháp "tài nguyên mới"

Tài nguyên cụ thể tôi đang sử dụng được lồng trong tài nguyên khác và tôi có một phần cho phép nó được tạo từ trang chương trình trên tài nguyên chính đó.

Tôi đã tắt tài nguyên trong menu, nhưng tôi muốn rời khỏi tài nguyên trong trình đơn để tôi có thể xem/chỉnh sửa/xóa các tài nguyên đó mà không phải tìm tài nguyên bằng cách xem qua tài nguyên chính.

Trả lời

28

Hãy thử config.clear_action_items!

+0

Quyền đó đã xảy ra. Cảm ơn nhiều. Trong trường hợp tôi muốn có các mục trong menu hành động, tôi chỉ cần thêm chúng sau khi tôi xóa nó? – YuKagi

+0

trong trình đơn chỉ mục thêm "default_actions" hoạt động để xem các hành động xem/chỉnh sửa/xóa – makvool

+0

Tôi nhận được: phương thức chưa xác định 'clear_action_items! ' cho # (NoMethodError) – makaroni4

63

Trước việc giải pháp didn`t đối với tôi, vì vậy đây là giải pháp chung, mà làm việc luôn:

ActiveAdmin.register Book do 
    actions :index 

    #or like that 
    #actions :all, :except => [:destroy] 

    index do 
    column :title 
    column :author 
    end 
end 
+35

'actions: index' không hoạt động đối với tôi, nhưng' actions: all,: except => [: new] 'đã thực hiện công việc. – mbillard

0
Worked for me too ! :-) 

ActiveAdmin.register AssetSumView do 
      menu :label => "Asset Summary View", :parent => "Things" 
# no button for NEW (since this is a db view) 
#--------------------------------------------------------------------------------------------- 
config.clear_action_items! 

    enter code here 

    action_item do 
     link_to "Assets" , "/admin/assets" 
    end 

    action_item do 
     link_to "AssetCatgCodes", "/admin/asset_catg_codes" 
    end 

#--------------------------------------------------------------------------------------------- 
3

Hoặc thậm chí:

ActiveAdmin.register Purchase do 
    config.clear_action_items! 
    actions :index 
end 
20

này loại bỏ các "tài nguyên mới" nút từ trên cùng bên phải:

config.clear_action_items! 

Thao tác này đã xóa cả nút "Tài nguyên mới" cũng như hộp "Chưa có tài nguyên - tạo tài nguyên".

actions :all, :except => [:new] 

Cảm ơn bạn, Irio

+1

Ghi chú nhỏ ở đây. Nếu bạn xác định một bộ điều khiển tùy chỉnh và xác định 'mới' bên trong khối điều khiển, điều đó sẽ ghi đè cài đặt này. Chỉ cần học được điều đó. Nếu bạn chỉ định rằng một hành động nào đó không nên tồn tại, hãy đảm bảo rằng bạn cũng không định nghĩa nó trong một khối 'controller'! – danielricecodes

6

Tôi biết đây là một câu hỏi cũ, nhưng tôi chỉ đưa ra với nó (có cùng một vấn đề), và nhận ra rằng config.clear_action_items!actions :all, :except => [:new] về cơ bản khác nhau.

config.clear_action_items! sẽ xóa nút New khỏi trang chỉ mục, trong khi actions :all, :except => [:new] sẽ xóa cả nút VÀ tuyến đường, nghĩa là bạn không thể gọi từ vị trí khác (trong trường hợp của tôi).

2
config.clear_action_items! 

Sẽ xóa tất cả các hành động. Nếu bạn chỉ muốn loại bỏ các liên kết mới hành động mà bạn cũng có thể sử dụng:

config.remove_action_item(:new) 
5

Tôi đã làm điều này:

controller do 
    def action_methods 
    if some_condition 
     super 
    else 
     super - ['new', 'create', 'destroy'] 
    end 
    end 
end 

Để vô hiệu hóa một số các hành động có thể. action_methods trả về một mảng trong số 7 hành động CRUD chuẩn, vì vậy, bạn có thể trừ các hành động bạn không muốn

Các vấn đề liên quan