1

したがって、レールガイドに従って、ネストされたレコードフォーム 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 に答える