Is it possible to render a "sidecar" partial for a ViewComponent?

Let's say I have

```ruby
class MyComponent < ViewComponent::Base
end
```

and 2 view files in

```
app/components/my_component/my_component.html.erb
app/components/my_component/_some_partial.html.erb
```

In `my_component.html.erb`, I want to be able to do:

```ruby
render "some_partial"
```

But without a special configuration, that looks under the views directory for said partial. I don't want to extract that partial to its own component, nor do I want it floating by itself in the view directory.

The first step is to tell Rails it can look for templates in the view components directory

```ruby
class ApplicationController < ActionController::Base
  append_view_path "#{Rails.root}/app/components"
```

Keep in mind that view contexts are based on the currently executing controller, so `<%= render :some_partial %>` in a `PostsController` (even within a `ViewComponent` class) will look for a partial in a subdirectory /posts or /application.

To make sure Rails finds your partial, use an "absolute" path when you render it:

```erb
<%= render "/my_component/some_partial" %>
```

Hat tip to Roli in the StimulusReflex discord

obie-fernandez
March 10, 2021
