Partial
The problem is Rails is trying to call a partial
, which is not what you're trying to call. A partial should have its name preceded with an _underscore
, indicating to Rails that it's a partial, hence why you're receiving your error
The reason this is important is because although you're just calling render
, you will actually call the partial too

--
Convention
One of the issues you have is that you'll be going against convention in several ways:
MVC dictates the "view" will be loaded per request (so Rails will expect it to just be present whenever you use it)
The "partials" functionality of your system needs to add to the views you're showing the users. This means you have to be sure you
have a view already showing on screen
This means you need to be certain if you're meant to be using a partial
or other element in this part of your app. From the looks of it, whilst you may be doing something right, you need to be sure you're able to load the partial correctly:
<%= render "your/partial/path/_partial_name.html.erb %>
--
View Path
Further to your view
path issue, although I've never encountered this issue directly, there is a function called append_view_path
, which allows you to add another "path" to look at for your app:
#app/controllers/welcome_controller.rb
Class WelcomeController < ApplicationController
append_view_path(File.join(RAILS_ROOT, "app/themes/#{@current_theme}"))
end