Итак, я проверил все существующие ответы на подобные вопросы здесь, в stackoverflow и в других местах, но не могу заставить гем mail_form работать так, как рекламируется.
Вот схема: я пытаюсь создать простую форму сбора потенциальных клиентов для веб-сайта моей компании.Я хочу отправить данные, собранные с помощью формы, на свою учетную запись электронной почты без серверной части базы данных, и я подумал, что mail_form упростит это.
Вот моя модель, 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 => "jonthewineguy@gmail.com",
:from => %("#{name}" <#{email}>)
}
end
end
А вот мой контроллер, 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
А вот мое мнение, 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 %>
Я новичок в rails и веб-программировании в целом, так что вполне может быть, что мне здесь не хватает чего-то ДЕЙСТВИТЕЛЬНО базового, что не упоминается ни в каких онлайн-руководствах. Я просмотрел всю документацию mail_form, все учебники и ответы, которые смог найти, но все еще получаю сообщение об ошибке.
О да! Я также получаю сообщение об ошибке, если пытаюсь использовать ContactForm.new в консоли rails. Любая помощь будет принята с благодарностью!
Да, Rails версии 3.1.1