【问题标题】:Contact us form with ActionMailer routing error with Rails 4与我们联系表单与 Rails 4 的 ActionMailer 路由错误
【发布时间】:2014-03-29 02:18:59
【问题描述】:

我对此比较陌生。我正在尝试将 URL 路由到表单,然后将该表单发送到联系电子邮件。这是我得到的错误。 当我搜索路由时,我发现实际上 send_mail 没有 POST 之类的东西。但我不确定为什么一开始就没有。而且我不确定如何放入...

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

Rails.root: /home/nadia/blog

这是我的联系人控制器:

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

这是我的应用程序/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

如果我可以向您展示任何其他文件,请告诉我 提前谢谢!

【问题讨论】:

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


    【解决方案1】:

    将此添加到您的 routes.rb

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

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

    【讨论】:

    • 谢谢!我认为它可能已经解决了这个问题......不幸的是,这给了我另一个错误-“message = params [:message]”论证错误......:S哦,亲爱的。
    【解决方案2】:

    只需在 routes.rb 中添加这个

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

    【讨论】:

    • 谢谢!我认为它可能已经解决了这个问题......不幸的是,这给了我另一个错误-“message = params [:message]”论证错误......:S哦,亲爱的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-15
    • 1970-01-01
    • 2014-04-07
    • 2015-01-12
    • 2015-11-03
    • 1970-01-01
    • 2016-10-17
    相关资源
    最近更新 更多