gpt4 book ai didi

HTML
标签导致 Rails 表单提交 GET 而不是 POST 请求

转载 作者:搜寻专家 更新时间:2023-10-31 23:11:40 24 4
gpt4 key购买 nike

在添加样式标签之前,我有一个工作正常的表单(我使用的是 Twitter Bootstrap )。该应用程序是 Rails 3.1,我在 Mac 上。这是一个可以正常工作的表单:

<%= form_for @user do |f| %>
<% if @user.errors.any? %>
<div class="alert-message error">
<h2>Form is invalid</h2>
<ul>
<% for message in @user.errors.full_messages %>
<li><%= message %></li>
<% end %>
</ul>
</div>
<% end %>

<div class="field">
<%= f.label :email %>
<%= f.text_field :email %>
</div>
<div class="field">
<%= f.label :password %>
<%= f.password_field :password %>
</div>
<div class="field">
<%= f.label :password_confirmation %>
<%= f.password_field :password_confirmation %>
</div>
<div class="actions"><%= f.submit %></div>
<%end %>

然后,当我将标签添加到完全相同的形式时,如下所示:

<form class="form-stacked">
<%= form_for @user do |f| %>
<% if @user.errors.any? %>
<div class="alert-message error">
<h2>Form is invalid</h2>
<ul>
<% for message in @user.errors.full_messages %>
<li><%= message %></li>
<% end %>
</ul>
</div>
<% end %>

<div class="field">
<%= f.label :email %>
<%= f.text_field :email %>
</div>
<div class="field">
<%= f.label :password %>
<%= f.password_field :password %>
</div>
<div class="field">
<%= f.label :password_confirmation %>
<%= f.password_field :password_confirmation %>
</div>
<div class="actions"><%= f.submit %></div>
<%end %>
</form>

此表单似乎发出 GET 请求而不是 POST 请求。我没有像没有标签那样在保存时重定向我,而是在 URL 中看到了这个: http://localhost:3000/signup?utf8=%E2%9C%93&authenticity_token=Pt1vOp7lykCPFdj5BJeZ6xwJM2vy0JomMGSKoB%2FyYpU%3D&user%5Bemail%5D=test%40get.com&user%5Bpassword%5D=kevin&user%5Bpassword_confirmation%5D=kevin&commit=Create+User

我已经尝试在 Rails 和 HTML 中指定 post。使用 :method => post 在 rails 中指定它会产生相同的结果(上面的 GET 请求和 URL 信息)。在 HTML 中使用看起来像一个 POST 请求,但用户对象没有保存(我相信是这种情况,因为我没有被重定向到 root_url,它在 Controller 中设置并且在不使用标签时工作正常)。有什么想法吗?

最佳答案

你想要这个:

<%= form_for @user, :html => { :class => "form-stacked", :id => "something" } do |f| %>
stuff goes in here as before
<% end %>

关于HTML <form> 标签导致 Rails 表单提交 GET 而不是 POST 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8161995/

24 4 0