У меня есть следующий надуманный пример в Rails. Я хочу убедиться, что у модели Garage есть по крайней мере одна машина с этим.
class Garage
has_many :cars
validate :at_least_one_car
accepts_nested_attributes_for :cars, :allow_destroy => true
def at_least_one_car
if cars.count == 0
errors.add_to_base("needs at least one car")
end
end
end
class Car
belongs_to :garage
end
В моей форме есть кнопка удаления, которая установит скрытое поле _delete в true для существующего автомобиля. Скажем, есть только один объект автомобиля, и я «удаляю» его в своей форме, если я делаю garage_object.update_attributes (params [: garage]),
это удалит модель автомобиля и сделает объект гаража недействительным. Есть ли способ заставить не обновить атрибуты, если это сделает модель недействительной?
params = {
:garage => {
:car_attributes => {
["0"] => {
_delete => true,
# other attributes here
}
}
}
}