我正在尝试使用内置邮件功能在Rials 5中与我联系。 我把它放在一起就像一个普通的控制器和用Mailer作为模型的视图。但当我把它全部写出来时,我得到了错误:
#ContactMailer
的未定义方法`model_name'
联系人是梅勒的名字。 当我尝试查看运行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 %>
还有生成的Mailer和视图,但我没有改变任何内容。
从我能够研究的错误可能是我没有初始化@contact变量,但我相信我有。而现在我迷失了。任何帮助,将不胜感激。
作为补充信息: 我的计划是使用此联系表单在Heroku上使用发送网格发送电子邮件。
答案 0 :(得分:0)
您正在尝试构建邮件程序。但不是如何使用它们。他们不是模特。
相反,你会做类似的事情:
ContactMailer.some_method_you_added_to_your_mailer(params[:name, :email, :message]).deliver_now
你不使用新的。
建议您阅读http://guides.rubyonrails.org/action_mailer_basics.html。