Quindi, ho controllato tutte le risposte esistenti a domande simili qui su StackOverflow e altrove, ma non riesco a far funzionare la gemma mail_form come pubblicizzato.Errore nell'uso delle rotaie gemma Mail_form: "costante non inizializzato Mailform"
Ecco la configurazione: sto cercando di creare un semplice modulo di acquisizione lead per il sito Web della mia azienda. Desidero inviare per e-mail i dati raccolti dal modulo al mio account di posta elettronica senza un back-end del database e ho pensato che fosse ciò che renderebbe facile la posta elettronica.
Ecco il mio modello, ContactForm.rb
:
class ContactForm < Mailform::Base
attribute :name, :validate => true
attribute :email, :validate => /\A([\w\.%\+\-]+)@([\w]{2,})\z/i
attribute :file, :attachment => true
attribute :phone
attribute :referral
attribute :message
attribute :nickname, :captcha => true
def persisted?
false
end
def headers
{
:subject => "New Lead",
:to => "[email protected]",
:from => %("#{name}" <#{email}>)
}
end
end
Ed ecco il mio controller, contact_forms_controller.rb
:
class ContactFormsController < ApplicationController
def new
@contact_form = ContactForm.new
end
def create
begin
@contact_form = ContactForm.new(params[:contact_form])
@contact_form.request = request
if @contact_form.deliver
flash.now[:notice] = 'Thank you for your interest!'
redirect_to root_path
else
render :new
end
rescue ScriptError
flash[:error] = 'Sorry, something was wrong'
end
end
end
E qui è la mia opinione, contact_forms/new.html.erb
:
<%= form_for @contact_form do |f| %>
<div class="field">
<%= f.label :name %>
<%= f.text_field :name, :required => true %>(required)<br /><br><br>
</div>
<div class="field">
<%= f.label :email %>
<%= f.email_field :email, :required => true %>(required)
<br /><br><br>
</div>
<div class="field">
<%= f.label :phone %>
<%= f.phone_field :phone %><br /><br><br>
</div>
<div class="field">
How did you hear about us?:<br /> <%= f.text_field :referral
%><br /><br><br>
</div>
<div class="field">
Comments (What types of wine are you
interested in?):<br/<%= f.text_area :message %><br /><br><br>
</div>
<div class="field">
Submit: <%= f.submit "Create" %>
</div>
<% end %>
Sono piuttosto nuovo per rotaie e programmazione web in generale, quindi potrebbe essere che io sono m pubblicare qualcosa di REALMENTE di base qui che non è menzionato in nessun tutorial online. Ho letto tutta la documentazione di mail_form e ogni tutorial e risposta che riesco a trovare e sto ancora ricevendo l'errore.
Oh sì! Ottengo anche l'errore se provo ContactForm.new nella console di rails. Qualsiasi aiuto sarebbe molto apprezzato!
Oh sì, Rails versione 3.1.1
Il file del modello deve essere denominato 'contact_form.rb', ovvero la convenzione di rotaie. Stai anche citando un errore, potresti aggiungerlo alla tua domanda? –