1

コントローラのcreateメソッドで、accepts_nested_attributesを使用して親オブジェクトと子オブジェクトを作成しています。それはすべてうまくいきます。

子には、正しく設定された順序付け属性があります。

ただし、検証が失敗した場合(たとえば、属性が欠落している場合)、fields_forメソッドの実行時に子オブジェクトの順序は保持されません。

parent.children.reorder( "ordering ASC")を使用してみましたが、機能しません...

状況が明確になれば、コードを投稿できてうれしいです。

def create
  @parent = Parent.new(params[:parent])

  respond_to do |format|
    if @parent.save
      format.html 
    else
      @parent.children.reorder("ordering ASC")  #this makes no difference
      format.html { render :action => "new" }
    end
  end
end

部分的な形で

<%= f.fields_for :children do |ff| %>
  <%= render "child_fields", :ff => ff %>
<% end %>

どんなポインタも素晴らしいでしょう。

4

2 に答える 2

0

よくわかりませんが、試してみてください。

コントローラ内

@children = @parent.children.reorder("ordering ASC")

ビューで

<%= f.fields_for :children, @children do |ff| %>
    <%= render "child_fields", :ff => ff %>
<% end %>
于 2012-01-07T20:17:32.480 に答える