Sprawdziłem więc wszystkie istniejące odpowiedzi na podobne pytania tutaj na stackoverflow i gdzie indziej, ale nie mogę uzyskać gemu mail_form, aby działał zgodnie z reklamą.Błąd przy użyciu rails Mail_form gem: "niezainicjowana stała Mailform"
Oto konfiguracja: próbuję utworzyć prosty formularz przechwytywania ołowiu dla witryny mojej firmy. Chcę wysłać dane zebrane przez formularz do mojego konta e-mail bez bazy danych i pomyślałem, że to, co mail_form byłoby łatwe.
Oto mój model, 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
A oto mój kontroler, 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
I tu jest moim zdaniem 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 %>
jestem całkiem nowe dla szyn i programowania w ogóle, więc może być tak, że jestem m jest czymś naprawdę NAPRAWDĘ podstawowym, o czym nie wspominają żadne tutoriale online. Przeglądałem całą dokumentację mail_form i każdy samouczek oraz odpowiedź, którą mogę znaleźć, wciąż dostaję błąd.
O tak! Też dostaję błąd, jeśli próbuję ContactForm.new w konsoli rails. Każda pomoc będzie bardzo ceniona!
Aha, Szyny wersję 3.1.1
Twój model powinien mieć nazwę 'contact_form.rb', czyli konwencję rails. Wspomniałeś również o błędzie, czy mógłbyś dodać go do swojego pytania? –