jsonapi-resources自定义操作

mas*_*ugo 5 jsonapi-resources ruby-on-rails-5.2

我需要向jsonapi-resources控制器添加自定义操作。该操作只是创建一个新版本的先前存在的CollectorContent模型实例。我的实现(仅从此处复制):

routes.rb

jsonapi_resources :collector_contents do
  member do
    post :create_version
  end
end
Run Code Online (Sandbox Code Playgroud)

collector_contents_controller.rb

class CollectorContentsController < ApplicationController
  def create_version
    cc = CollectorContent.find(params[:id])
    cc_new_version = cc.create_version!
    render json: resource_serializer.serialize_to_hash(CollectorContentResource.new(cc_new_version, nil))
  end
end
Run Code Online (Sandbox Code Playgroud)

即使可行,似乎也不建议在控制器中添加新操作,但是我不明白如何使用操作处理器来实现用例。你能帮忙吗?