How do I get my Rails app\'s root directory path?
You can access rails app path using variable RAILS_ROOT
.
For example:
render :file => "#{RAILS_ROOT}/public/layouts/mylayout.html.erb"
module Rails
def self.root
File.expand_path("..", __dir__)
end
end
source: https://github.com/rails/rails/blob/5259062868dcf10fbcf735d6520e6a14e15fdcdb/actionmailer/test/abstract_unit.rb#L12
In addition to all the other correct answers, since Rails.root
is a Pathname object, this won't work:
Rails.root + '/app/assets/...'
You could use something like join
Rails.root.join('app', 'assets')
If you want a string use this:
Rails.root.join('app', 'assets').to_s
For super correctness, you should use:
Rails.root.join('foo','bar')
which will allow your app to work on platforms where /
is not the directory separator, should anyone try and run it on one.
Simply by Rails.root or if you want append something we can use it like Rails.root.join('app', 'assets').to_s
Simply By writing Rails.root and append anything by Rails.root.join(*%w( app assets)).to_s