2016-02-29 55 views
0

我使用自定義批量操作在Rails應用中使用活動管理。 批處理操作是根據數據庫的最後5條記錄創建的。請參閱下面的代碼。如何在Active Admin自定義批量操作中重新加載代碼?

但是,當創建新記錄(事件)時,批處理操作不會刷新。我想知道如何強制刷新?是否有一個函數可以調用以使批處理操作從新記錄刷新?由於

ActiveAdmin.register TimeLineMessage do 
    menu 
    menu label: 'Rundown page' 

    Event.order("created_at DESC").limit(5).reload.each do |event| 
    batch_action ("Move to " + event.name.to_s).to_sym do |ids| 
     TimeLineMessage.find(ids).each do |tlm| 
     tlm.event_id = event.id 
     tlm.save 
     end 
     redirect_to collection_path, alert: "The content tiles have been moved to "+ event.name.to_s + " event " 
    end 
    end 

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

回答

1

你想去的地方不能工作,因爲事實代碼是這樣的,才執行一次在軌道/ ActiveAdmin的引導。

但是有其他的方式,你可以去:

batch_action :attach_to_event, form: { 
    event_id: -> { Event.order("created_at DESC").limit(5).pluck(:id, :name) } 
} do |ids, inputs| 
    event = Event.find(inputs[:event_id]) 
    TimeLineMessage.find(ids).each do |tlm| 
    tlm.event_id = event.id 
    tlm.save 
    end 
    redirect_to collection_path, alert: "The content tiles have been moved to "+ event.name.to_s + " event " 
end 

的代碼是不是我測試過,但這個想法應該工作。

+0

你是否知道,如何用其中的附加形式來測試這樣的動作? – Aleks