2014-09-08 15 views
12

là có một cách để xác định trong trang index ActiveAdmin của một mô hình những hành động được cho phép, những thứ như:hành động ActiveAdmin

index do 
    actions :edit 
end 

index do 
    actions only: :edit 
end 

không làm việc. Cú pháp chính xác là gì?

Được đánh giá cao.

bundle show activeadmin 
/home/muichkine/.rvm/gems/ruby-2.1.2/bundler/gems/active_admin-9cfc45330e5a 

Trả lời

20

Thêm bất cứ hành động mà bạn muốn có sẵn bằng sử dụng actions (thường được đặt theo định nghĩa mô hình):

ActiveAdmin.register YourModel do 
actions :index, :show, :create, :edit, :update 

Nếu bạn muốn xác định phương pháp để hành động nhất định, bạn có thể làm

action_item only: :show do 
    link_to 'Edit', action: :edit # so link will only be available on show action 
end 
+0

Tác vụ ': create' hay ': new'? Nếu tôi sử dụng 'hành động: tất cả, ngoại trừ: [: tạo]' Tôi vẫn nhận được nút "Mới" trên trang chỉnh sửa. Sử dụng 'actions: all, ngoại trừ: [: new]' làm cho nút biến mất. – spinlock

1

Làm theo cách này,

ActiveAdmin.register Foobar do 
    actions :all, :except => [:destroy] 
end 

hoặc

ActiveAdmin.register Foobar do 
    actions :only => :edit 
end 

cần được xác định ở cấp nguồn không định nghĩa phương pháp

+1

Dựa trên [source code] (https://github.com/activeadmin/activeadmin/blob/master/ lib/active_admin/views/index_as_table.rb # L80) nó cũng phải được tùy chỉnh trong định nghĩa phương thức, nhưng chỉ với việc thêm các hành động mới và vô hiệu hoá các hành động mặc định hoàn toàn. –

+0

@GaborGarami, bạn có thể tùy chỉnh nó bên trong phương thức riêng lẻ. Kiểm tra điều này http://activeadmin.info/docs/8-custom-actions.html#custom_action_items –

+0

Andrey cũng cho thấy cách nó có thể được tùy chỉnh, nhưng tôi đoán muichkine chỉ xử lý các hành động mặc định. –

0

Ví dụ cách chơi với cột hành động. Trong ví dụ này, tôi vừa triển khai lại mặc định, nhưng bạn có thể thực hiện mã hóa mạnh mẽ tại đây:

column :actions do |item| 
    links = [] 
    links << link_to('Show', item_path(item)) 
    links << link_to('Edit', edit_item_path(item)) 
    links << link_to('Delete', item_path(item), method: :delete, confirm: 'Are you sure?') 
    links.join(' ').html_safe 
end 
Các vấn đề liên quan