Rails - 停止使用ID创建的表单

时间:2013-11-05 20:41:44

标签: ruby-on-rails erb

继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>

2 个答案:

答案 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}