ruby-on-rails - Rails:在控制器操作导致“缺少此请求格式和变体的模板”错误后渲染 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
现在渲染得很好。
解决方案
我想这是因为你在块内渲染,我认为你不能那样做
推荐阅读
- swift - 从 SwiftUI DatePicker 的范围内获取年龄
- c++ - 使用 Visual Studio Code 进行 C++ 编程 - “exe 与您正在运行的 Windows 版本不兼容。”
- javascript - 添加或编辑后,FlatList 无法滚动且无法更新项目
- next.js - 材质图标 cdn 在 next.js 中不起作用
- c# - LINQ/PLINQ AsNoTracking / AsParallel 性能 - 用法
- c# - 如何获得用户的所有索赔?
- c# - 为什么以下代码不会检索指定的注册表项值
- json - 读取 json 文件时出错。问题是什么?
- java - JavaFX getResource() 返回 null
- c - Flex 匹配字符串文字,转义换行符