Rails で Mail_form Gem を使用すると、メールの構成が正しいことを確認できます。ただし、ログにエラーは表示されません。
contact.rb [アプリ/モデル/contact.rb]
class Contact < MailForm::Base
include MailForm::Delivery
attribute :name, :validate => true
attribute :email, :validate => /\A([\w\.%\+\-]+)@([\w\-]+\.)+([\w]{2,})\z/i
attribute :message
attribute :nickname, :captcha => false
# Declare the e-mail headers. It accepts anything the mail method
# in ActionMailer accepts.
def headers
{
:subject => "IT Site Contact",
:to => "kompinski@gmail.com",
:from => %("#{name}" <#{email}>)
}
end
end
contact_controller.rb
class ContactsController < ApplicationController
def new
@contact = Contact.new(params[:contact])
end
def create
@contact = Contact.new(params[:contact])
@contact.request = request
@contact.deliver
end
end
ルート.rb
resources :contacts, only: [:new, :create]
get 'contact' => 'contacts#new'
post 'contact' => 'contacts#create'
new.html.erb [/views/contacts/new.html.erb]
<div class="container">
<div class="col-md-6"><h2>Contact us</h2>
<hr />
<form role="form">
<%= twitter_bootstrap_form_for @contact, url: new_contact_path, method: :post do |f| %>
<div class="medium">
</div>
<div class="medium">
<%= f.text_field :name, :required => true %>
</div>
<div class="medium">
<%= f.email_field :email, :required => false %>
</div>
<div class="medium">
<%= f.text_area :message, :as => :text, :required => true %>
</div>
<div class="btn">
<%= f.submit 'Submit' %>
<% end %>
</div>
</form>
</div>
</div>
** 編集 ** Contact.new(params[:contact]).deliver を使用してフォームから直接送信することもできますが、アドレスを再送信する場合のみです。ただし、フォームを含むページをロードすると、「未定義のメソッド `model_name' for TrueClass:Class」が示されます。