2012-12-19 35 views
8

Mô hình đăng ký ActiveAdmin của tôi có trường boolean "hoạt động". Tôi muốn bao gồm một hành động hàng loạt để "kích hoạt" nhiều bản ghi cùng một lúc.Lỗi mẫu ActiveAdmin batch_action và không cập nhật

Tôi cố gắng để làm theo hướng dẫn tại địa chỉ:

http://activeadmin.info/docs/9-batch-actions.html

để thực hiện một hành động hàng loạt tùy chỉnh và Tôi gặp hai vấn đề.

Tôi có điều này:

ActiveAdmin.register Venue do 

    batch_action :deactivate do |selection| 
    Venue.find(selection).each do |v| 
     v.active = false 
    end 
    end 
end 

Khi tôi cố gắng để kích hoạt một cái gì đó tôi nhận được một mẫu không tìm thấy lỗi. Nó đang tìm kiếm một mẫu "batch_action". Tôi không thấy bất cứ điều gì trong tài liệu đó về việc cần phải thêm một mẫu. Nếu tôi thêm một mẫu với tên đó, lỗi sẽ biến mất và nó sẽ hiển thị mẫu ... tất nhiên đây không phải là thứ tôi muốn. Tôi muốn nó chỉ hiển thị lại chỉ mục.

Trong cả hai trường hợp (có hoặc không có mẫu tại chỗ), mô hình không được cập nhật. Tôi có thể thấy trong nhật ký nơi nó chỉ thực hiện một lựa chọn cho các bản ghi đã chọn và không làm gì khác.

Trả lời

20

Tôi đã thoát khỏi những vấn đề này bằng cách làm như sau:

batch_action :activate do |selection| 
    Venue.find(selection).each do |v| 
    v.active = true 
    v.save 
    end 
    redirect_to :back #this ensures any current filter stays active 
end 

Các 'tiết kiệm' phần có vẻ hiển nhiên, nhưng các ví dụ trong các tài liệu đã ném tôi ra về nỗ lực đầu tiên của tôi. Có vẻ như đây sẽ là một ví dụ phù hợp hơn cho các tài liệu.

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