我有一个可以正常工作的表单,直到我添加样式标签(我正在使用 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 中看到了这一点,而不是像没有标签那样在保存时重定向我:
我尝试在 Rails 和 HTML 中指定 post 。在 Rails 中使用 :method => post 指定它会产生相同的结果(上面的 GET 请求和 URL 信息)。在 HTML 中使用看起来像 POST 请求,但 User 对象没有保存(我相信是这种情况,因为我没有被重定向到 root_url,它在控制器中设置,并且在不使用标签时工作正常)。有任何想法吗?
你要这个:
<%= form_for @user, :html => { :class => "form-stacked", :id => "something" } do |f| %>
stuff goes in here as before
<% end %>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)