Vấn đề của tôi hơi giống với câu hỏi nested_form gem add works but remove fails...why?.Rails: nested_form gem remove không hoạt động nhưng thêm công trình
Tôi có trang chỉnh sửa sản phẩm, trong đó các danh mục phụ của sản phẩm được liên kết trong product_sub_categories. Để gán các danh mục con cho sản phẩm, tôi đã sử dụng các thuộc tính lồng nhau cho product_sub_categories. Vì vậy, sản phẩm có thể có nhiều hơn một tiểu thể loại.
Trong mô hình sản phẩm,
has_many :product_sub_categories
has_many :sub_categories, :through => :product_sub_categories
accepts_nested_attributes_for :product_sub_categories, :allow_destroy => true
Và trong sản phẩm chỉnh sửa xem:
<%= f.fields_for :product_sub_categories do |product_sub_category| %>
<%= product_sub_category.collection_select :sub_category_id, @sub_categories, :id, :sub_category, {:include_blank => 'Select a Sub Category'} %>
<%= product_sub_category.link_to_remove "Remove", :class => "subcatlink" %>
<% end %>
Mã hoạt động tốt cho thêm tiểu mục. Nhưng không thành công khi tôi xóa danh mục phụ. Nhật ký cung cấp:
"product_sub_categories_attributes"=>{"0"=>{"sub_category_id"=>"1", "_destroy"=>"false", "id"=>"9"}, "1"=>{"sub_category_id"=>"1", "_destroy"=>"1", "id"=>"17"}},
ProductSubCategory Load (0.2ms)[0m [1mSELECT `product_sub_categories`.* FROM `product_sub_categories` WHERE `product_sub_categories`.`product_id` = 8 AND `product_sub_categories`.`id` IN (9, 17)
Mặc dù, tôi nhấp vào Xóa, nó chỉ vượt qua _destroy = "1", nhưng không phá hủy danh mục phụ.
Ai có thể nói giải pháp này?
Cập nhật:
Rất tiếc vì lỗi lầm ngu ngốc của tôi. Tôi không thấy mã đúng cách. Trong mô hình tôi đã sao chép
accepts_nested_attributes_for :product_sub_categories
không có: allow_destroy => true. Khi tôi gỡ bỏ nó, mã hoạt động đúng.
không hoạt động. Vẫn lỗi tương tự! – user2206724
lỗi là gì? –
hey nó đã hoạt động! Đã cập nhật trong câu hỏi. – user2206724