继Michael Harvati的rails教程之后。我们创建一个表单,但默认情况下rails似乎用ID表示它。如何为每个元素停止使用ID呈现的表单?
Rails代码:
<% provide(:title, 'Sign up') %>
<h1>Sign up</h1>
<div class="row">
<div class="span6 offset3">
<%= form_for(@user) do |f| %>
<%= f.label :name %>
<%= f.text_field :name %>
<%= f.label :email %>
<%= f.text_field :email %>
<%= f.label :password %>
<%= f.password_field :password %>
<%= f.label :password_confirmation, "Confirmation" %>
<%= f.password_field :password_confirmation %>
<%= f.submit "Create my account", class: "btn btn-large btn-primary" %>
<% end %>
</div>
</div>
答案 0 :(得分:1)
您已经询问过如何从呈现的表单中删除ID属性,但是使用评论中给出的说明,听起来您真正拥有的是嵌套资源的示例。所以,我会发布一个解决这个问题的答案,而不是你原来的问题,希望它可能有所帮助。
我将使用您的示例:如果用户能够在图片上发布评论,那么您的路线可能会设置为如下所示:
resources :image do
resources :comment
end
在你的表单中,假设你有多个图像被渲染,它可能看起来像这样:
<% @images.each do |image|
... image stuff goes here ...
<%= form_for [image, @comment] do |image_form|
... comment form stuff goes here ...
<% end %>
<% end %>
这将以params哈希的形式呈现给控制器,该哈希看起来像这样:
{
"image_id"=>"42",
"comment"=>{...comment form attributes...}
}
如果我完全离开并完全误解了你,请告诉我。
答案 1 :(得分:-2)
尝试form_for(@user), html: {:id => nil}