Tôi hiện có biểu mẫu đầu vào được tạo bằng Cocoon và muốn tạo các trường nhập do nó tạo ra (có thể sắp xếp từ jQuery-ui).Sử dụng Cocoon (Nested Forms) và jQuery có thể sắp xếp với nhau
Mã cho hình thức lồng nhau là:
<%= f.simple_fields_for :checkout_procedures do |procedure| %>
<li><%= render 'checkout_procedure_fields', :f => procedure %></li>
<% end %>
<div class="links">
<%= link_to_add_association 'add step', f, :checkout_procedures %>
</div>
Các phần được trả lại (_checkout_procedure_fields) là:
<div class="checkout_procedure nested-fields">
<table>
<tr>
<td><%= f.input :step %></td>
<td><%= link_to_remove_association "remove step", f %></td>
</tr>
</table>
</div>
tôi có thể có được các yếu tố hiện sắp xếp được bằng cách đặt chúng bên trong a <div>
và đặt nó có thể sắp xếp bằng jQuery:
<div class="sortThese">
<%= f.simple_fields_for :checkout_procedures do |procedure| %>
<li><%= render 'checkout_procedure_fields', :f => procedure %></li>
<% end %>
</div>
<div class="links">
<%= link_to_add_association 'add step', f, :checkout_procedures %>
</div>
<script>
$(document).ready(function() {
$(".sortThese").sortable();
});
</script>
Nhưng làm như vậy sẽ phá vỡ chức năng của số link_to_add_association
và link_to_remove_association
của Cocoon. Sử dụng <ul>
với <li>
cũng dẫn đến sự cố Cocoon giống nhau. Tôi đã nhìn xung quanh để hack một số javascript mà di chuyển mỗi hình thức đầu vào trong và ngoài của div sắp xếp (làm điều này dường như làm cho các liên kết làm việc một lần nữa), nhưng rõ ràng điều này là không phù hợp. Nếu ai có bất cứ lời đề nghị nào, tôi thực sự cảm kích họ!
Không chắc chắn vì phiên bản nào, nhưng hiện tại đường ray 'fields_for' (được bọc bởi' simple_fields_for') thêm trường nhập ẩn cho 'id'. Bạn có thể bỏ qua điều này, bằng cách đưa ra tùy chọn ': include_id => false' vào' simple_fields_for'. Thao tác này sẽ xóa đầu vào bị ẩn và sau đó sắp xếp sẽ hoạt động lại như trước. – nathanvda
Cảm ơn @nathanvda. Điều này làm việc cho tôi. Điều khác duy nhất tôi phải thay đổi là thêm id như là một đầu vào ẩn trong các lĩnh vực một phần vì tôi vẫn cần id cho đối tượng lồng nhau của tôi. – sdoxsee