Ruby on rails 如何在rails中的active_admin中添加操作

Ruby on rails 如何在rails中的active_admin中添加操作,ruby-on-rails,activeadmin,Ruby On Rails,Activeadmin,我正在rails中使用active_admin,我想在其中添加一个将运行服务的操作 操作应显示在“索引”视图中。那么,如何添加运行此服务的操作呢 我的app/admin/website.rb代码是 ActiveAdmin.register Website do actions :index index do selectable_column id_column column :state column :name column :create

我正在rails中使用active_admin,我想在其中添加一个将运行服务的操作

操作应显示在“索引”视图中。那么,如何添加运行此服务的操作呢

我的app/admin/website.rb代码是

ActiveAdmin.register Website do
  actions  :index

  index do
    selectable_column
    id_column
    column :state
    column :name
    column :created_at
    column :updated_at
  end
end
在上面的文件中,我想检查id
state='draft'
,然后它应该运行运行服务的操作

我的服务文件app/services/website_verify_state_service.rb:

class WebsiteVerifyStateService
    
  def self.process!(website)
    new(website).process
  end

  def initialize(website)
    @website = website
  end

  def process
    site_response = self.class.post("#{BASE_MONO_URL}reseller/account/site", 
      
    site_data = JSON.parse(site_response.body)['data']
    if site_data
      @website.update(published: true) if site_data[0]['site']['lastPublishDate'].present?
    end
  end
end
所以我唯一关心的是,当我从活动管理员处调用此服务时,如何通过操作调用此服务。
提前感谢

您可以将条件操作添加到
索引
表中:

ActiveAdmin.register网站do
行动:索引
索引do
可选列
id_列
专栏:国家
列:名称
列:创建于
专栏:更新于
行动办|网站|
项目('Verify state',Verify_admin_websites_path(website.id),类:'member_link'),如果website.state=='draft'
结束
结束
成员操作:验证do
#在这里施展你的魔法,不管你做什么
WebsiteVerifyStateService.process!
重定向返回(回退位置:根路径)
结束
结束