0

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」が示されます。

4

1 に答える 1