Tôi đang phân tích mã nguồn của đường ray, vì tôi đã muốn hiểu các hoạt động bên trong của has_many
và các cấu trúc tương tự.Làm thế nào là ruby trên đường ray has_many (và tương tự) được thực hiện?
Cho đến nay, tôi đã có thể tìm thấy nơi phương pháp này được thực hiện (link to github): nó là trong module ActiveRecord :: Hội
def has_many(name, options = {}, &extension)
Builder::HasMany.build(self, name, options, &extension)
end
Cái này eventualy kết thúc (link to github) trong lớp ActiveRecord :: Các hiệp hội :: Builder :: CollectionAssociation as
def self.build(model, name, options, &extension)
new(model, name, options, &extension).build
end
Có những kỹ năng ruby của tôi kết thúc và tôi không thể theo dõi nó thêm nữa và tìm nơi "mới" được triển khai và nó hoạt động như thế nào.
Ai đó có thể chỉ cho tôi đúng hướng và có thể nhận xét cùng, những gì đang diễn ra dưới mui xe?
+1 cho perusing mã nguồn của các công cụ bạn đang sử dụng để đạt được một hiểu biết sâu hơn về ruột của họ. Con đường để đi. –
@ s.m .: Tôi đồng ý. Nếu đọc mã nguồn không "hiển thị nỗ lực nghiên cứu" (như chú giải công cụ cho nút upvote nói), tôi không biết những gì! +1! –
Cảm ơn mọi người đã trả lời. Tôi chấp nhận câu trả lời của Jörg, bởi vì nó là chi tiết nhất. Tôi cũng +1 Baldrik và s.m. là người đầu tiên trả lời. –