Search code examples
ruby-on-railsactionview

Template is not found by Rails


Rails 5.1

In my controllers/fw_exports_conttroller.rb, I have:

def import_spreadsheet
  @import_spreadsheet = FwExport.new
  render template: "fw_exports/_import_spreadsheet"
end

When I select the menu item for this controller action, I get the following error message:

Processing by FwExportsController#import_spreadsheet as HTML
ActionView::MissingTemplate (Missing template fw_exports/_import_spreadsheet with {:locale=>[:en], :formats=>[:html], :variants=>[], :handlers=>[:raw, :erb, :html, :builder, :ruby, :slim, :coffee, :jbuilder]}. Searched in:
  * "/home/utils/rails/follower_wonk/app/views"
  * "/home/utils/.rvm/gems/ruby-2.4.2/gems/devise_invitable-1.7.2/app/views"
  * "/home/utils/.rvm/gems/ruby-2.4.2/gems/devise-4.3.0/app/views"
):
FATAL -- : [d37603eb-3da3-4ad2-b81b-29198e6bb773] app/controllers/fw_exports_controller.rb:67:in `import_spreadsheet'

I verified that

app/views/fw_exports/_import_spreadsheet.html.slim

does exist. Any ideas?


Solution

  • By the "_" fw_exports/_import_spreadsheet.html.slim looks like a partial, when rendering partials you can skip the partial option and just pass the route of the file after the views folder, in your case:

    def import_spreadsheet
      @import_spreadsheet = FwExport.new
      render 'fw_exports/import_spreadsheet'
    end
    

    Note render 'fw_exports/import_spreadsheet' will work even if the file doesn't have the "_" prefix, unlike the template option, that doesn't accept partial files.