2016-04-15 6 views
0

Ich bin neu bei Schienen und fragte mich, ob es eine Möglichkeit gab, ein Formular im Ordner Ansichten zu machen, so dass ich eine E-Mail senden kann. Das Formular würde eine Eingabe benötigen für: Die E-Mail-Adresse; das Thema; Botschaft.Ein Formular zum Senden von E-Mails in Schienen

dann im Grunde drücken Sie senden und senden die E-Mail

Antwort

1

Die Form wäre nur Ihre grundlegende Rails anzeigen und Controller-Aktion, zum Senden der E-Mail selbst Action Mailer überprüfen.

Wenn Sie jedoch nach etwas wirklich Grundlegendem suchen, nur um E-Mails von einem Formular zu senden, gibt es viele vorgefertigte Lösungen, bei denen Sie nicht Ihre eigenen mit Rails rollen müssen. Ich benutze Formspree.

+0

Ich glaube, ich bin hier ein bisschen dick zu sein, aber ich kann nicht herausgearbeitet, wie, wo ich meine Form gebracht –

+0

Rails Mailer ist ein wenig seltsam, besonders wenn Sie neu bei Rails sind. Es ist vollständig mit dem Senden von E-Mails und von allem anderen entkoppelt. Ihr Formular wird also nur eine andere Ansicht sein, und die Übermittlungsaktion wird nur zu einer anderen Controller-Aktion gehen. Sobald Sie jedoch im Controller sind, wird die Action Mailer-Methode ausgelöst. Überprüfen Sie den ersten Link dort zum Rails Guide, es führt Sie wirklich durch was zu tun ist. – Justin

+0

Überprüfen Sie www.enformed.io, hat ein paar interessante Funktionen, wie zum Beispiel die Weiterleitung nach dem Absenden und die E-Mail-Anpassung. – Ivangrx

3

Sie können es mit:

Mailer Form 

<%= form_tag '/path' do%> 
Email : </br><%= text_field_tag 'email', ''%></br> 
subject: </br><%= text_field_tag 'subject', ''%></br> 
Body:<%= text_area_tag 'body', ''%> 
<%= submit_tag "submit",:value => "submit"%> 
<%end%> 

For Controller 

def path 
    data = params[:body] 
    subject=params[:subject] 
    user = params[:email] 
    Mailer.mail_method(data,user,subject).deliver 
end 

For Mailer 

    def mail_method(data,email,subject) 
    @body=data 
    mail(to: email, subject: subject) 
    end 

Mailer Ansicht

<%[email protected]%> 
+0

das sieht gut und ordentlich aus, aber wo geht das "For Mailer" Bit hin? –

+0

ist für den Mailer, von dem Sie die Mail senden. Beispiel Klasse UserMailer

+0

Also habe ich es und wenn ich Submit drücke, bekomme ich einen 'No route matches [POST]"/Pfad "' Fehler, muss ich etwas in Routen einfügen? –

Verwandte Themen