Rails 3: Comment obtenir le chemin de l'image dans le Contrôleur?
Pour obtenir le chemin de l'image dans le Contrôleur-je utiliser la méthode suivante:
class AssetsController < ApplicationController
def download(image_file_name)
path = Rails.root.join("public", "images", image_file_name).to_s
send_file(path, ...)
end
end
Est-il une meilleure méthode pour trouver le chemin ?
- Double Possible de l'Accès des Actifs Chemin de Rails Contrôleur
Vous devez vous connecter pour publier un commentaire.
Accès Chemin d'une ressource à partir de Rails de Contrôleur
image_path
pasasset_path
. Il ne pouvait pas la cible des fichiers dans mon dossier images. À l'aide deview_context
travaillé à la place.Ne sais pas si cela a été ajoutée dès Rails 3, mais est certainement de travail dans les Rails 3.1. Vous pouvez désormais accéder à la
view_context
à partir de votre contrôleur, ce qui vous permet d'appeler des méthodes qui sont normalement accessibles à votre point de vue:Noter que ce sera vous donner la accessible au public de chemin d'accès (par exemple: "/assets/foobar.gif"), pas le système de fichiers local chemin.
asset_url
qui permet de ne pas ajouter le domaine dansActionController::Base.helpers
.view_context.image_path('noimage.jpg')
Actif url:
Url de l'Image:
view_context
fonctionne pour moi dans les Rails 4.2 et Rails 5.Trouver quelques codes dans les Rails repo explique
view_context
:Vous pourriez vouloir vérifier
image_path(image.png)
pour votre scénario.Voici les exemples de les docs: