How to change the default path of view files in a Rails 3 controller?

Yuval Karmi picture Yuval Karmi · Nov 29, 2010 · Viewed 24.4k times · Source

I have a controller called ProjectsController. Its actions, by default, look for views inside app/views/projects. I'd like to change that path for all methods (index, show, new, edit etc...) in the controller.

For example:

class ProjectsController < ApplicationController

  #I'd like to be able to do something like this
  views_path 'views/mycustomfolder'

  def index
    #some code
  end

  def show
    #some code
  end

  def new
    #some code
  end

  def edit
    #some code
  end
end

Please note I am not changing each method with render but defining a default path for all of them. Is this possible? If so, how?

Thank you!

Answer

mmell picture mmell · Oct 9, 2012

See ActionView::ViewPaths::ClassMethods#prepend_view_path.

class ProjectsController < ApplicationController
    prepend_view_path 'app/views/mycustomfolder'
    ...