¿Ruta del directorio raíz de Rails?
¿Cómo obtengo la ruta del directorio raíz de mi aplicación Rails?
En Rails 3 y posteriores:
Rails.root
que devuelve un Pathname
objeto. Si quieres una cadena tienes que agregar .to_s
. Si desea otra ruta en su aplicación Rails, puede usarla join
así:
Rails.root.join('app', 'assets', 'images', 'logo.png')
En Rails 2 puedes usar la RAILS_ROOT
constante, que es una cadena.
Para una súper corrección, debes usar:
Rails.root.join('foo','bar')
lo que permitirá que su aplicación funcione en plataformas donde /
no existe el separador de directorios, en caso de que alguien intente ejecutarla en una.
Puede acceder a la ruta de la aplicación Rails utilizando la variable RAILS_ROOT
.
Por ejemplo:
render :file => "#{RAILS_ROOT}/public/layouts/mylayout.html.erb"
En algunos casos, es posible que desee la raíz de Rails sin tener que cargar Rails.
Por ejemplo, obtienes un ciclo de retroalimentación más rápido cuando TDD hace modelos que no dependen de Rails al requerir spec_helper
en lugar de rails_helper
.
# spec/spec_helper.rb
require 'pathname'
rails_root = Pathname.new('..').expand_path(File.dirname(__FILE__))
[
rails_root.join('app', 'models'),
# Add your decorators, services, etc.
].each do |path|
$LOAD_PATH.unshift path.to_s
end
Lo que le permite cargar fácilmente objetos Ruby antiguos desde sus archivos de especificaciones.
# spec/models/poro_spec.rb
require 'spec_helper'
require 'poro'
RSpec.describe ...