Một ví dụ về những gì tôi đang nói về:
class Person < ActiveRecord::Base
def name=(name)
super(name.capitalize)
end
def name
super().downcase # not sure why you'd do this; this is just an example
end
end
Điều này có vẻ hiệu quả, nhưng tôi chỉ đọc phần về ghi đè các phương thức thuộc tính trong các tài liệu ActiveRecord :: Base và nó gợi ý sử dụng các phương thức read_attribute
và write_attribute
. Tôi nghĩ rằng phải có điều gì đó sai với những gì tôi đang làm trong ví dụ trên; mặt khác, tại sao họ lại ban phước cho các phương thức này như là "cách đúng" để ghi đè các phương thức thuộc tính? Họ cũng đang buộc một thành ngữ xấu hơn nhiều, vì vậy phải có một lý do chính đáng ...
Câu hỏi thực sự của tôi: Có điều gì sai với ví dụ này?