Comment puis-je obtenir le chemin du répertoire racine de mon application Rails?Rails Chemin du répertoire racine?
Répondre
Rails 3 et plus récent:
Rails.root
qui retourne un objet Pathname
. Si vous voulez une chaîne, vous devez ajouter .to_s
. Si vous voulez un autre chemin dans votre application Rails, vous pouvez utiliser join
comme ceci:
Rails.root.join('app', 'assets', 'images', 'logo.png')
Dans Rails 2, vous pouvez utiliser la constante RAILS_ROOT
, qui est une chaîne.
Vous pouvez accéder au chemin de l'application rails à l'aide de la variable RAILS_ROOT
.
Par exemple:
render :file => "#{RAILS_ROOT}/public/layouts/mylayout.html.erb"
RAILS_ROOT est représenté depuis que Rails 3.0 a été utilisé Rails.root –
Pour super correct, vous devez utiliser:
Rails.root.join('foo','bar')
qui permettra à votre application fonctionne sur les plateformes où /
n'est pas le séparateur de répertoire, si quelqu'un essayer de lancez-le sur un.
Par exemple, sur mon MacBook , 'Rails.root.join ('foo', 'bar')' évalue à Pathname objet dont @path est '/ Users/purplejacket/mon_rails_app/foo/bar' – Purplejacket
En plus de toutes les autres réponses, puisque Rails.root
est un objet Pathname
, cela ne fonctionnera pas:
Rails.root + '/app/assets/...'
Vous pouvez utiliser quelque chose comme join
Rails.root.join('app', 'assets')
Si vous voulez un chaîne utiliser ceci:
Rails.root.join('app', 'assets').to_s
En fait 'Rails.root + 'app/assets'' * fonctionne *, mais oui "join" est plus propre. – Mischa
Ce n'est généralement pas une bonne idée de coder en dur ce que le jeton de séparateur de fichier est (\ ou /). –
Vous pouvez utiliser:
Rails.root
Mais pour rejoindre les actifs que vous pouvez utiliser:
Rails.root.join(*%w(app assets))
Espérons que cela vous aide.
Dans certains cas, vous pouvez avoir besoin de la racine Rails sans devoir charger de Rails. Par exemple, vous obtenez un cycle de rétroaction plus rapide lorsque les modèles TDD qui ne dépendent pas de Rails nécessitent spec_helper
au lieu 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
Ce qui vous permet de charger facilement Plain Old Ruby Objets de leurs fichiers de spécifications.
# spec/models/poro_spec.rb
require 'spec_helper'
require 'poro'
RSpec.describe ...
simplement par Rails.root ou si vous voulez ajouter quelque chose que nous pouvons l'utiliser comme Rails.root.join ('app', 'actifs'). To_s
S'il vous plaît supprimer cette réponse, c'est juste du bruit, n'ajoute rien à la question. – luk2302
simplement en écrivant Rails.root et d'ajouter n'importe quoi par Rails.root.join (*% w (app assets)).to_s
S'il vous plaît supprimer cette réponse, c'est juste du bruit, n'ajoute rien à la question et il est mal formaté. – luk2302
- 1. Chemin du répertoire racine Winform.Comment encore!
- 2. IIS Chemin racine vs chemin du répertoire virtuel
- 3. Comment accéder au chemin racine dans un répertoire mod_python?
- 4. Comment déterminer l'emplacement du répertoire racine IsolatedStorageFile
- 5. Obtention du chemin du répertoire .NET Framework
- 6. Chemin racine de l'application Grails
- 7. télécharger l'image sur le répertoire racine du site secondaire
- 8. Bundler crée un? dossier dans le répertoire racine du projet
- 9. SQL Server racine Répertoire
- 10. Comment puis-je obtenir le chemin local du répertoire racine de mon site SharePoint?
- 11. L'application Ruby on Rails dans le répertoire racine?
- 12. Problème de chemin racine dans asp.net?
- 13. Obtenir le répertoire racine de scons
- 14. Comment obtenir le répertoire racine sur PHP
- 15. Modifier le chemin racine FileServlet
- 16. définir les rails racine dans l'environnement
- 17. Chemin absolu du répertoire de démarrage exécutable
- 18. Chemin d'accès commun du répertoire makefile GNU
- 19. C# Get chemin URL du répertoire local
- 20. répertoire racine serveur ASP.NET interne
- 21. PHP: Document problème backslash répertoire racine
- 22. Ressource imbriquée au niveau racine du chemin d'accès
- 23. Définition du répertoire racine svn dans la sous-classe
- 24. Puis-je modifier le répertoire racine du stockage de session?
- 25. LAMP: Définir la racine du document pour un répertoire spécifique
- 26. Définition par programme du répertoire racine d'application d'une application COM +
- 27. page d'accès du sous-répertoire comme page racine
- 28. structure du répertoire du projet django et le chemin python
- 29. Ant annuaire qui inclut le répertoire racine
- 30. Rails Restauration Bundle 3 Chemin d'installation ... Il Installons maintenant dans ma racine
Dans Rails 2.3 Rails.root est une instance de Pathname où RAILS_ROOT est une chaîne. – Richard
Seulement Rails.root dans 3.1 et plus tard (ahh .. le cas de changer CONSTANT;)) – thanikkal
Vous pouvez également 'Rails.root.join (*% w (app assets images logo.png))'. – Nate