我有使用fast_jsonapi
的基于Rails 5的api应用程序
一段时间后,我发现我所有的所有动作都有一种共同的模式
def action_name
@some_object.perform_action_name # this returns @some_object
render json: ControllerNameSerializer.new(@some_object).to_h
end
我不希望在这里写最后render
行,它应该可以工作,因为我希望动作的返回值应该由任何隐藏响应者处理,例如: ,可以查看控制器名称来确定序列化器类别。
也许可以通过添加一个小的中间件来实现。但是,起初,我发现选择中间件不是一个好主意/实践。在中间件中,我们确实获得了渲染响应,在此之前我们需要一个钩子。
我想像
class SomeController ...
respond_with_returned_value
def action_name
@some_object.perform_action_name # this returns @some_object
end
有什么建议吗?
请注意,不必担心错误/失败的情况,@some_object.errors
可以保留它们,我有一种机制可以单独处理该问题。