我有一个简单形式的联接表。与嵌套has_many:through关联。我用茧宝石添加了多个对象。
它呈现为:
<%= v.simple_fields_for :document_place_rooms do |vf| %>
<%= render partial: 'document_place_room',locals: {f: vf,document: document} %>
<% end %>
如果所有对象均有效,则所有事物都将按照默认顺序正常渲染。
但是,如果对象之一无效,则渲染:edit模板,并且无效对象在列表中排在最后。无论创建时的顺序如何,如果无效都将最后渲染,然后在编辑模板中重新渲染。
我认为发生这种情况是因为默认顺序是按ID排序的,但是如果未保存对象(无效),则它没有ID并将其推到列表的最后。我尝试更改联接模型的默认范围,但没有结果。
请帮助,我该如何对没有ID的对象进行排序,然后将其首先推入嵌套对象列表中?