2016-10-26 7 views
0

私はRials 5にメール機能を組み込んで連絡先フォームを作ろうとしています。 通常のコントローラーのようにまとめて、メーラーをモデルとして表示します。しかし、私はすべてそれを書かれている場合、私はエラーが表示されます:Mailer - Rails 5のための未定義のメソッド `model_name '

undefined method `model_name' for #ContactMailer

連絡先はメーラーの名前です。 railsサーバーを実行しているnew.html.erbページを表示しようとすると、エラーが表示されます。それは次のようになります。ここでは Screen Shot

は、私が働いているコードです:

contacts_controller.rb

class ContactsController < ApplicationController 

def new 
    @contact = ContactMailer.new 
end 

def create 
    @contact = ContactMailer.new(params[:name, :email, :message]) 
    if @contact.deliver 
     flash[:success] = "Your message has been sent." 
    else 
     flash[:error] = "There was a problem sending your message." 
     render 'new' 
    end 
end 

そして

new.html.erb

<%= form_for @contact do |f| %> 

     <div class="form-group"> 
      <%= f.label :name %> 
      <%= f.text_field :name, class: 'form-control' %> 
     </div> 

     <div class="form-group"> 
      <%= f.label :email %> 
      <%= f.email_field :email, class: 'form-control', required: true %></div> 

     <div class="form-group"> 
      <%= f.label :message %> 
      <%= f.text_area :message, class: 'form-control' %> 
     </div> 

      <%= f.submit "Send", class: 'btn btn-default' %> 

    <% end %> 

生成されたメーラーとビューもありますしかし、私はそれらで何も変えていない。

エラーを調べることができたことから、@contact変数を初期化していない可能性がありますが、私はそれを信じています。そして、今私は失われています。どんな助けもありがとう。

追加情報: 私の計画は、この連絡用紙がヘロクの送信グリッドを使用してメールを送信することです。

答えて

0

メーラーを作成しようとしています。どのように使用されているのかはわかりません。彼らはモデルではありません。あなたがそれらに新しいを使用していない

ContactMailer.some_method_you_added_to_your_mailer(params[:name, :email, :message]).deliver_now 

代わりに、あなたのような何かをするだろう。

http://guides.rubyonrails.org/action_mailer_basics.htmlをお読みください。

関連する問題