将表单数据提交给控制器操作

时间:2014-11-17 23:31:18

标签: ruby-on-rails

我想将数据从表单发布到控制器操作。我不确定我是否正确地执行此操作或如何测试数据是否已发送,因为我现在不熟悉rails

HTML:

      <%= form_tag({controller: "home", action: "send_mail"}, method: "get") %>
        <div class="col-md-12">
          <div class="col-md-6">
            <div class="form-group">
              <%= text_field(:name) %>
            </div>
            <div class="form-group">
              <%= email_field(:email) %>
            </div>
            <div class="form-group">
              <%= telephone_field(:phone) %>
            </div>
          </div>
          <div class="col-md-6">
            <%= text_area_tag(:body, "Message...", size: "24x6") %>
          </div>
          <button id="send-btn" class="btn btn-xl" type="submit">SEND MESSAGE</button>
        </div>
      <% end %>

我希望将数据发送到此控制器操作

class HomeController < ApplicationController
  def index
  end

  def send_mail
    name = params[:name]
    email = params[:email]
    phone = params[:phone]
    body = params[:body]
    UserMailer.contact_mail(name, email, body).deliver
  end
end

1 个答案:

答案 0 :(得分:1)

检查您的日志。在您的终端中,从您开始rails server的窗口,您应该会看到应用中发生的活动的运行日志。提交表单后,您应该看到如下内容:

Started POST "/home/send_mail: for 127.0.0.1 at xxxx-xx-xx Processing by HomeController#send_mail as xxxx Completed 200 OK in xxms

这将验证a)您的服务器处理了正确的路由; b)路由由预期的控制器操作处理,c)您收到的服务器代码。可能正确的控制器操作正在处理此路线,但您的邮件设置未正确配置。从日志开始。如果您需要更高级的调试,请查看无价的撬(https://github.com/pry/pry)。