2011-04-03 2 views
1

J'essaie d'ajouter une fonctionnalité basique de téléchargement de fichier à mon application Rails et j'ai les champs password_hash et password_salt pour mon modèle de fichier. J'ai aussi une fonction dans laquelle un lien de téléchargement vers le fichier est généré, mais je ne suis pas totalement sûr (comme je suis assez nouveau pour Ruby and Rails) comment je vais demander à l'utilisateur un mot de passe et vérifier cela avant de procéder au téléchargement du fichier.Ruby on Rails - Demander l'utilisateur pour le mot de passe

Toute aide serait appréciée.

Répondre

1

Vous devez vous cibler un lien vers un contrôleur et d'envoyer le fichier comme ceci:

before_filter :login_required 
def download 
    send_file '/home/railsway/downloads/huge.zip', :type=>"application/zip" 
end 

cette façon, vous pouvez vérifier le mot de passe en vous avant filtre en utilisant HTTP Basic Auth par exemple.

plus d'info: http://www.therailsway.com/2009/2/22/file-downloads-done-right

+1

je double vérifier ce poste chaque fois que je fais des téléchargements. – Preacher

+0

Je pensais à l'utilisation de l'authentification de base HTTP - mais il serait vraiment peu intéressant d'avoir un champ de nom d'utilisateur qui doit juste être laissé vide. (J'ai raison de dire que l'authentification de base HTTP a besoin d'un champ utilisateur et mot de passe?) –

+0

Vous avez raison, à vous d'utiliser une authentification basée sur une session classique en utilisant un plugin Rails, car le téléchargement est piloté par un contrôleur, vous pouvez appliquer la même authentification que les pages Web. check: http://railscasts.com/episodes/21-super-simple-authentication –

Questions connexes