0

遵循 Michael Harvati 的 rails 教程。我们创建了一个表单,但默认情况下,rails 似乎使用 ID 呈现它。您如何停止使用每个元素的 ID 呈现表单?

导轨代码:

<% 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>
4

2 回答 2

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...}
}

如果我完全离开并且完全误解了你,请告诉我。

于 2013-11-05T22:24:32.633 回答
-2

尝试form_for(@user), html: {:id => nil}

于 2013-11-05T21:10:32.663 回答