Tôi đã thử rất nhiều thứ để ghi đè hành vi của phương thức: hủy nhưng không có gì hoạt động. Trước tiên tôi đã sử dụng plugin actions_as_paranoia, nhưng nó không hoạt động với mô hình trong một has_many: thông qua liên kết.Đường ray: cách ghi đè: phương thức tiêu diệt?
Tôi muốn ghi đè lên: phá hủy phương pháp chỉ để làm một cái gì đó như thế này:
def destroy
_run_destroy_callbacks { delete }
end
def delete
self.update_attribute(:status => 0)
freeze
end
Đó là, tôi chỉ muốn cập nhật một lĩnh vực (trạng thái 0) thay vì phá hủy các hồ sơ riêng của mình.
Vâng, đó là điều đầu tiên tôi thử. Điều này không có gì. Tôi có thể thấy yêu cầu DELETE FROM trong nhật ký của mình. Phương thức phá hủy tùy chỉnh dường như không được gọi. –
Hrm, tôi thực sự sử dụng điều này trong một số mô hình trong một số ứng dụng và nó hoạt động mà không bị lỗi. Có bất cứ điều gì 'đặc biệt' với mô hình cụ thể này và bạn đang gọi xóa hay phá hủy? Bạn sẽ muốn sau này. – miked
Bản ghi bị phá hủy từ cha mẹ của nó trong một AREL (quan hệ ActiveRecord), có lẽ đó là vấn đề?Trong thực tế, tôi cập nhật mẫu và bản ghi rượu của tôi (biểu mẫu chính, phương thức cập nhật trong bộ điều khiển), và nếu tôi chọn xóa đứa trẻ (mô hình giống có chứa tiêu diệt tùy chỉnh), nó không được gọi là rõ ràng. Có lẽ, cơ chế đường ray là khác nhau để phá hủy nếu nó là cha mẹ phá hủy đứa trẻ (không gọi phá hủy trên mô hình con?) –