在尝试熟悉如何使用资源来规划路线的同时, 我遇到了一个奇怪的错误:
没有交互式请求模板
ShoppersController#index 缺少请求格式的模板:text/html
路线.rb
Rails.application.routes.draw do
resources :shoppers
end
shoppers_controller.rb
class ShoppersController < ApplicationController
def index
end
def create
@shopper = Shopper.new
end
end
shoppers.html.erb
<h1>Welcome Shoppers</h1>
有谁知道如何解决这个问题吗?
感谢您分享的所有反馈。
这是因为你的视图名称错误。正如您收到的错误所示:“Rails 需要一个操作来呈现一个具有相同名称的模板,该模板包含在以其控制器命名的文件夹中”
所以在你的情况下,结构需要是:
使用控制器中的操作名称创建一个视图!
就我而言: 我已经在 app/view/index.html.erb 中有了 index.html.erb 但仍然出现这个错误:
UsersController#index is missing a template for request formats: text/html
我发现问题在于将 HTML 渲染为 json 所以最后我改变了方法:
def index @users = User.all render json: @users end
和测试:
`
描述 'Users GET /users#index' 执行的操作
它“检查响应状态是否正确”
获取用户路径,标头:{ 'HTTP_ACCEPT' => 'application/json' }
expect(response).to have_http_status(:success)
end
结束 `