发表表单提交获取请求标头

时间:2014-11-04 05:54:48

标签: html ruby-on-rails forms

我正在开发一个ruby on rails的个人网站。 我有一个动态生成的表单:

<div>
  <%= @request_type %>
  <h1>Login Form</h1>
  <% if @error == true %>
    <h1>Error: Login Information Invalid</h1>
  <% end %>
  <%= form_for :user, url: {action: "login"}, method: :post do |f| %>
    <p> E-mail: <br /> <%= f.text_field :email %></p>
    <p> Password: <br /> <%= f.password_field :password %></p>
    <p><%= submit_tag "Log In!", :disable_with => "Logging in..." %></p>
  <% end %>
</div>

@request_type被设置为request.request_method(),暂时用于调试目的。

为表单生成的HTML具体如下所示:

<form accept-charset="UTF-8" action="/login" method="post">
  <!-- authentication token here -->
  <p> E-mail: <br /> <input id="user_email" name="user[email]" type="text" /></p>
  <p> Password: <br /> <input id="user_password" name="user[password]" type="password" /></p> 
  <p><input data-disable-with="Logging in..." name="commit" type="submit" value="Log In!" /></p>
</form>

但是,无论何时提交,标题都是使用GET方法设置的,而不是在表单元素中声明的POST(请参阅method="post")。

R.O.R.可能与正在发生的事情无关...我正在使用Chrome来测试我的应用程序。有关为什么会发生这种情况的任何想法?我绝对需要使用POST的请求。

如果有任何其他信息可能对解决此问题有用,请询问,我会提供。

编辑:相关路线:

login POST /login(.:format)         user#login
      GET  /login(.:format)         user#login'

我认为没有理由发布与&#34;登录&#34;无关的路线。动作。

1 个答案:

答案 0 :(得分:1)

= submit_tag应为= f.submit_tag

同时替换:

<%= form_for :user, url: {action: "login"}, method: :post do |f| %>

使用:

<%= form_for :user, url: login_path, method: :post do |f| %>