-
Notifications
You must be signed in to change notification settings - Fork 486
Description
After upgrading from version 3.23.2 to 4.0.2 a few of our tests started failing with the following error:
ActionView::Template::Error:
Couldn't find a template file or inline render method for ChipComponent.
This is only happening when having the eager load enabled. We took some investigation and it seems that the slim template handler is not being registered for some reason. While debugging we got this part of the code and checked that ActionView::Template.template_handler_extensions is not including slim as one of the handlers:
https://github.com/ViewComponent/view_component/blob/main/lib/view_component/compiler.rb#L178
After manually injecting "slim" in ActionView::Template.template_handler_extensions we were able to make the specs pass, but we're not sure what is causing the handler not to be registered.
On our application we're including slim-rails version 3.7.0, slim 5.2.1 and rails 7.2.2.2.
Unfortunately we were not able to produce an example of the error but feel free to request any other information.
Backtrace:
ActionView::Template::Error:
Couldn't find a template file or inline render method for ChipComponent.
# /home/ronualdo/.rbenv/versions/3.3.8/lib/ruby/gems/3.3.0/gems/view_component-4.0.2/lib/view_component/compiler.rb:38:in `block in compile'
# /home/ronualdo/.rbenv/versions/3.3.8/lib/ruby/gems/3.3.0/gems/view_component-4.0.2/lib/view_component/compiler.rb:26:in `synchronize'
# /home/ronualdo/.rbenv/versions/3.3.8/lib/ruby/gems/3.3.0/gems/view_component-4.0.2/lib/view_component/compiler.rb:26:in `compile'
# /home/ronualdo/.rbenv/versions/3.3.8/lib/ruby/gems/3.3.0/gems/view_component-4.0.2/lib/view_component/base.rb:563:in `__vc_compile'
# /home/ronualdo/.rbenv/versions/3.3.8/lib/ruby/gems/3.3.0/gems/view_component-4.0.2/lib/view_component/base.rb:106:in `render_in'
# /home/ronualdo/.rbenv/versions/3.3.8/lib/ruby/gems/3.3.0/gems/actionview-7.2.2.2/lib/action_view/helpers/rendering_helper.rb:42:in `render'
# /home/ronualdo/.rbenv/versions/3.3.8/lib/ruby/gems/3.3.0/gems/view_component-4.0.2/lib/view_component/base.rb:261:in `render'
# ./packs/******/app/components/*********_component.html.slim:20:in `call'
# /home/ronualdo/.rbenv/versions/3.3.8/lib/ruby/gems/3.3.0/gems/view_component-4.0.2/lib/view_component/template.rb:113:in `block in safe_method_name_call'
# /home/ronualdo/.rbenv/versions/3.3.8/lib/ruby/gems/3.3.0/gems/view_component-4.0.2/lib/view_component/compiler.rb:91:in `instance_exec'
# /home/ronualdo/.rbenv/versions/3.3.8/lib/ruby/gems/3.3.0/gems/view_component-4.0.2/lib/view_component/compiler.rb:91:in `block in define_render_template_for'
# /home/ronualdo/.rbenv/versions/3.3.8/lib/ruby/gems/3.3.0/gems/view_component-4.0.2/lib/view_component/base.rb:146:in `block (2 levels) in render_in'
# /home/ronualdo/.rbenv/versions/3.3.8/lib/ruby/gems/3.3.0/gems/view_component-4.0.2/lib/view_component/base.rb:237:in `around_render'
# /home/ronualdo/.rbenv/versions/3.3.8/lib/ruby/gems/3.3.0/gems/view_component-4.0.2/lib/view_component/base.rb:145:in `block in render_in'
# /home/ronualdo/.rbenv/versions/3.3.8/lib/ruby/gems/3.3.0/gems/view_component-4.0.2/lib/view_component/base.rb:23:in `with_buffer'
# /home/ronualdo/.rbenv/versions/3.3.8/lib/ruby/gems/3.3.0/gems/view_component-4.0.2/lib/view_component/base.rb:141:in `render_in'
# /home/ronualdo/.rbenv/versions/3.3.8/lib/ruby/gems/3.3.0/gems/actionview-7.2.2.2/lib/action_view/helpers/rendering_helper.rb:42:in `render'
# ./packs/*********/app/views/home/homepage/_hero.html.slim:13:in `block (2 levels) in _packs_marketing_web_app_views_home_homepage__hero_html_slim___3703666319150538091_521800'
# /home/ronualdo/.rbenv/versions/3.3.8/lib/ruby/gems/3.3.0/gems/actionview-7.2.2.2/lib/action_view/helpers/capture_helper.rb:50:in `block in capture'
# /home/ronualdo/.rbenv/versions/3.3.8/lib/ruby/gems/3.3.0/gems/actionview-7.2.2.2/lib/action_view/buffers.rb:75:in `capture'
# /home/ronualdo/.rbenv/versions/3.3.8/lib/ruby/gems/3.3.0/gems/actionview-7.2.2.2/lib/action_view/helpers/capture_helper.rb:50:in `capture'
# /home/ronualdo/.rbenv/versions/3.3.8/lib/ruby/gems/3.3.0/gems/view_component-4.0.2/lib/view_component/slot.rb:72:in `block in to_s'
# /home/ronualdo/.rbenv/versions/3.3.8/lib/ruby/gems/3.3.0/gems/view_component-4.0.2/lib/view_component/base.rb:383:in `with_original_virtual_path'
# /home/ronualdo/.rbenv/versions/3.3.8/lib/ruby/gems/3.3.0/gems/view_component-4.0.2/lib/view_component/slot.rb:71:in `to_s'
# /home/ronualdo/.rbenv/versions/3.3.8/lib/ruby/gems/3.3.0/gems/temple-0.10.4/lib/temple/utils.rb:18:in `escape_html_safe'
# ./packs/******************/app/views/home/homepage/_hero.html.slim:27:in `block in _packs_marketing_web_app_views_home_homepage__hero_html_slim___3703666319150538091_521800'
# (...)
# --- Caused by: ---
# ViewComponent::TemplateError:
# Couldn't find a template file or inline render method for ChipComponent.
# /home/ronualdo/.rbenv/versions/3.3.8/lib/ruby/gems/3.3.0/gems/view_component-4.0.2/lib/view_component/compiler.rb:38:in `block in compile'
System configuration
Rails version:
7.2.2.2
Ruby version:
3.3.8
Gem version:
4.0.2