has_many удалить ассоциации при обновлении

Я думаю, что это довольно просто… Но я не понимаю. У меня есть связь has_many между двумя моделями (комбинация и canvas_price):

комбинация.rb:

class Combination < ActiveRecord::Base
  has_many :canvas_prices, :dependent => :delete_all

  accepts_nested_attributes_for :canvas_prices,
                                :allow_destroy => true,
                                :reject_if => lambda { |a| a[:name].blank? }
end

canvas_price.rb:

class CanvasPrice < ActiveRecord::Base
    belongs_to :combination
end

В моей форме у меня есть ссылки, которые удаляют входные данные во вложенной форме CanvasPrice через JavaScript.

Моя проблема в том, что когда я удаляю одно или несколько из этих полей и обновляю комбинацию, связанные CanvasPrices не удаляются, хотя CanvasPrices, которые я хочу удалить, НЕ находятся в моих параметрах. Как мне этого добиться?


person Arne Cordes    schedule 26.09.2012    source источник


Ответы (1)


Хорошо, довольно просто… Это было так же просто, как добавить _delete-param с помощью скрытого ввода, например. грамм. комбинация[canvas_prices][0][_delete] = true.

Я думал, что это поведение можно настроить непосредственно в методе has_many или accepts_nested_attributes_for.

person Arne Cordes    schedule 13.10.2012