[英]Rails: Render JSON after Controller action results in “missing a template for this request format and variant” error
我有這個簡單的管理員 controller 並且我試圖在調用 #reset 操作后顯示一條消息,以便在操作完成時向管理員提供反饋(因為它執行 de seed.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
我究竟做錯了什么?
編輯:
我必須在 controller 的 class 級別聲明respond_to:json
並將操作塊更改為
def reset
Rails.application.load_seed
msg = { :reset => "OK" }
respond_with do |format|
format.json { render :json => msg }
end
end
現在渲染得很好。
我想這是因為你在塊內渲染,我認為你不能那樣做
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.