小编kha*_*anc的帖子

Rails json.jbuilder api 与 rspec -> ActionView::MissingTemplate

我有一个 Rails (6.0.0) 项目,其中 api 路由响应与 jbuilder (2.9.1) 放在一起。我在尝试测试控制器时使用 rspec-rails (3.9.0) 遇到错误,但它抛出此错误:

Failure/Error: render :show

     ActionView::MissingTemplate:
       Missing template api/users/show, application/show with {:locale=>[:en], :formats=>[:html], :variants=>[], :handlers=>[:raw, :erb, :html, :builder, :ruby, :coffee, :jbuilder]}. Searched in:
         * "#<RSpec::Rails::ViewRendering::EmptyTemplateResolver::ResolverDecorator:0x00007efbf0062f50>"
         * "#<RSpec::Rails::ViewRendering::EmptyTemplateResolver::ResolverDecorator:0x00007efbf0062ed8>"
         * "#<RSpec::Rails::ViewRendering::EmptyTemplateResolver::ResolverDecorator:0x00007efbf0062e88>"
     # ./app/controllers/api/users_controller.rb:8:in `create'
     # ./spec/controllers/api/users_controller_spec.rb:7:in `block (4 levels) in <top (required)>'
     # -e:1:in `<main>'
Run Code Online (Sandbox Code Playgroud)

控制器/api/user_controller.rb:

def create
  @user = User.new(user_params)
  if @user.save
    login(@user)
    render :show
  else
    render json: @user.errors.full_messages, status: 422
  end
end
Run Code Online (Sandbox Code Playgroud)

视图/api/users/show.json.jbuilder:

json.partial! 'api/users/user', user: @user
Run Code Online (Sandbox Code Playgroud)

路线.rb:

  namespace :api, …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails jbuilder rspec-rails

3
推荐指数
1
解决办法
1330
查看次数

标签 统计

jbuilder ×1

rspec-rails ×1

ruby-on-rails ×1