Tôi không thể hình dung ra khối thích hợp khởiLàm thế nào để khởi tạo lớp trong khối trong Ruby?
class Foo
attr_accessor :bar
end
obj = Foo.new do |a|
a.bar = "baz"
end
puts obj.bar
Expect "baz" thay vì có được con số không
câu thần chú thích cho initializers lớp khối trong ruby là gì?
'attr_accessor' không thể hoạt động ở dạng đó và khối không bao giờ được gọi. –
Cảm ơn, bạn đã đúng về điều đó, tôi đã sửa nó để mã "chức năng" bây giờ là – Doug
Phải, tôi hiểu rằng nó không được gọi (điều này giải thích tại sao nó không hoạt động). Tôi thích ý tưởng "nhấn" bên dưới, vì nó cho phép tôi sử dụng các công cụ như FactoryGirl (yêu cầu trình khởi tạo mặc định) mà không phải ghi đè lên mới. – Doug