2010-09-30 9 views
2
def index 
    @forms = Form.all 
    respond_to do |format| 
     format.html 
    end 
    end 
    def submit 
     respond_to do |format| 
     format.pdf {render } 

    end 
    end 

submit.pdf.prawn file 
pdf.text "successfully submitted" 
+1

besoin de plus d'informations que seulement passé votre code – shingara

+0

Par exemple - dites-nous ce qui se passe lorsque vous exécutez ce code - obtenez-vous un message d'erreur? Avez-vous essayé autre chose? Comment cela s'est-il passé? Savez-vous quelle partie du code vous cause des problèmes? Manquez-vous un concept que vous aimeriez que nous vous aidions à définir? –

Répondre

0

Utilisez langoustine pour générer un pdf qui est enregistrée quelque part dans votre dossier/public, comme:

Prawn::Document.generate("#{RAILS_ROOT}/public/pdfs/myfile.pdf") 

Ensuite, il suffit d'utiliser votre contrôleur pour rediriger les utilisateurs vers cet emplacement:

redirect_to '/pdfs/myfile.pdf' 
+0

Utilisez crevette pour générer un pdf qui est enregistré quelque part dans votre dossier/public, comme: Prawn :: Document.generate ("# {RAILS_ROOT} /public/pdfs/myfile.pdf") Ensuite, utilisez simplement votre contrôleur pour rediriger utilisateurs à cet endroit: redirect_to '/pdfs/myfile.pdf' – zealmurugan

+0

Action inconnue Aucune action n'a répondu à afficher. Actions: current_user, current_user_session, générer, index, permission_denied, travel_log et unauthorised_url – zealmurugan

+0

Le problème avec cette réponse est que si l'application est servie par plusieurs serveurs, le serveur qui a répondu à la redirection n'est peut-être pas celui qui a '/ pdfs /myfile.pdf 'pour que l'utilisateur obtienne un 404. – sockmonk

7

Il est possible pour Prawn de générer et retourner le PDF sans avoir à enregistrer localement ...

def submit 
    send_data(generate_pdf, :filename => "output.pdf", :type => "application/pdf") 
end 

private 
def generate_pdf 
    Prawn::Document.new do 
     text "Hello Stackoverflow" 
    end.render 
end