使用Rails 4与ActionMailer路由错误联系我们表单

时间:2014-02-26 10:18:41

标签: rest ruby-on-rails-4 routing actionmailer

我对此比较陌生。我正在尝试将URL路由到表单,然后将该表单发送给联系人电子邮件。这是我得到的错误。 当我耙路线时,我发现实际上没有像send_mail这样的POST。但我不确定为什么首先没有一个。而且我不确定如何把它放进......

Routing Error
No route matches [POST] "/send_mail"

Rails.root: /home/nadia/blog

这是我的contact_controller:

1 class ContactController < ApplicationController
2   def new
3   end
4
5   def send_mail
6     name = params[:name]
7     email = params[:email]
8     message = params [:message]
9     ContactUs.contact_email(name, email, message).deliver
10     redirect_to contact_path, notice: 'Message Sent'
11   end

这是我的app / mailer / contact_us.rb

1 class ContactUs < ActionMailer::Base
2   default to: "my@email.com"
3   default from: "my@email.com"
4
5   def contact_email (name, email, message)
6     @name = name
7     @email = email
8     @message = message
9
10     mail(from: name, subject: 'Contact')
11   end
12 end
13

如果有任何其他文件可以告诉我,请告诉我 提前谢谢!

2 个答案:

答案 0 :(得分:0)

将此添加到routes.rb

post '/send_mail' => 'contact#send_mail'

您应该阅读Rails routing guide了解更多信息

答案 1 :(得分:0)

只需在routes.rb

中添加
post '/send_mail' => 'contact#send_mail'