Nếu bạn có các cột DB created_at
và updated_at
Rails sẽ tự động đặt các giá trị đó khi bạn tạo và cập nhật đối tượng mô hình. Có cách nào để lưu mô hình mà không chạm vào các cột đó không?Có cách nào để tránh tự động cập nhật các trường dấu thời gian Rails không?
Tôi đang đưa vào một số dữ liệu cũ và tôi muốn đặt các giá trị đó từ các giá trị tương ứng trong các trường dữ liệu kế thừa (được đặt tên khác). Tôi tìm thấy khi tôi đặt chúng trên mô hình và sau đó lưu mô hình, Rails xuất hiện để ghi đè lên các giá trị đến.
Tất nhiên tôi chỉ có thể đặt tên cột mô hình Rails khác nhau để ngăn chặn điều đó, nhưng sau khi dữ liệu được nhập, tôi muốn Rails làm điều dấu thời gian tự động của nó.
Bạn thậm chí có thể kéo điều này vào một phương pháp, ví dụ: 'def without_timestamps cũ = ActiveRecord :: Base.record_timestamps ActiveRecord :: Base.record_timestamps = false bắt đầu năng suất đảm bảo ActiveRecord :: Base.record_timestamps = old end end' – nonrectangular
Chúng ta có cần đặt lại thành 'true' ngay cả khi thực thi scrips hoặc mã trong console không? – oldergod
Tôi nghĩ rằng http://stackoverflow.com/a/37193298/1214748 là tốt hơn nhiều. Nó không tắt nó trên toàn cầu cho toàn bộ ứng dụng – maschwenk