1

所以我遵循 rails guide,我创建了一个嵌套记录表单,huzzah,但我想知道如何让新表单出现在列表的顶部而不是底部。现在,当我每次提交表单时,嵌套模型的新空白表单都会放在列表的底部。我怎样才能让它出现在顶部?

编辑代码基本相同:

<% @post.tags.build %>
<%= form_for(@post) do |post_form| %>
  field 1
  field 2
  field 3
...
  <%= form.fields_for :tags do |tag_form| %>
       ...
       ...
    <%end %>
<%end %>

产生了

 Post Field 1
   Post Field 2
   Post Field 3

    TAGS
      previously created record 1
      previously created record 2
      previously created record 3
      ...
      Blank form!

但我希望我的嵌套 for 看起来像:

 Post Field 1
       Post Field 2
       Post Field 3

        TAGS
          Blank form!
          previously created record 1
          previously created record 2
          previously created record 3
          ...
4

1 回答 1

0

这是一个假设,但我相信这是因为@post.tags.build将在当前存储记录的末尾添加一条新记录。您也许可以执行以下操作:

<% tags = [@post.tags.build] << @post.tags %>
[...]
<%= form.fields_for :tags, tags do |tag_form| %>
    [...]

这种方式fields_for使用我们将新标签放在最前面的修改后的数组。

注意:我尚未对此进行测试,因此对于任何错误我深表歉意。我还删除了不需要更改的部分。

于 2013-01-08T16:23:37.090 回答