Tôi đã cố tạo một biểu mẫu phức tạp với nhiều mô hình lồng nhau và làm cho nó trở nên năng động. Bây giờ tôi thấy rằng làm cho một mô hình lồng nhau không phải là khó khăn với accept_nested_attributes_for, nhưng làm cho nó lồng nhau và năng động dường như là không thể nếu có nhiều mô hình lồng nhau.Rails fields_for: child_index giải thích tùy chọn
Tôi đã xem qua số http://github.com/ryanb/complex-form-examples/blob/master/app/helpers/application_helper.rb, nó rất thanh lịch. Bất cứ ai có thể làm sáng tỏ một số dòng 13 và 16?
13 form_builder.object.class.reflect_on_association(method).klass.new
và
16 form_builder.fields_for(method, options[:object], :child_index => "new_#{method}") do |f|
Từ trực giác, dòng 13 instantiates một đối tượng mới, nhưng tại sao nó phải làm rất nhiều cuộc gọi phương pháp? Tôi không thể tìm thấy bất kỳ tài liệu nào cho tùy chọn: child_index trên dòng 16. Khi biểu mẫu được tạo, một số rất lớn được sử dụng làm chỉ mục cho các mô hình mới, trong khi các mô hình hiện có được lập chỉ mục theo id của chúng. Cái này hoạt động ra sao?
Làm cách nào Rails biết những gì cần xóa trong cơ sở dữ liệu nếu nó được lập chỉ mục từ 0 đến đếm - 1? Tôi đang thiếu một cái gì đó. – Timothy
Nó chèn trường ẩn cho mỗi bản ghi, chứa id của nó: ''. Bạn nên xem nguồn HTML để hiểu, những gì Rails tạo ra. – Voyta
giải thích tuyệt vời. cảm ơn. – user938363