Rails:在控制器操作导致"missing a template for this request format and variant"错误后呈现 JSON



我有一个简单的管理员控制器,我正试图在调用#reset操作后显示一条消息,以便在操作完成时(当它执行deseed.rb文件时(向管理员提供反馈

该操作执行得很好,但我无法让它显示msg,我在服务器日志中得到了以下消息:

ActionController::UnknownFormat (Api::V1::AdminController#reset is missing a template for this request format and variant.
request.formats: ["application/json"]
request.variant: []):

class Api::V1::AdminController < Api::V1::BaseController
before_action :initialize
def seed
@builder.process_file
end
def reset
Rails.application.load_seed do
msg = { :status => "ok" }
respond_to do |format|
format.json  { render :json => msg }
end
end
end
private
def initialize
@builder = PaymentBuilder.new
end
end

我做错了什么?

编辑:

我不得不在控制器的类级别声明respond_to :json,并将操作块更改为

def reset
Rails.application.load_seed
msg = { :reset => "OK" }
respond_with do |format|
format.json  { render :json => msg }
end
end

现在它看起来很好。

我想发生这种情况是因为你在块内部渲染,我认为你不能用的方式

最新更新