Có rất nhiều chi tiết cụ thể nhưng mẫu tổng thể chúng tôi sử dụng là "bọc và mở rộng". Ý tưởng chung là tạo ra một cuốn sách nấu ăn phụ thuộc vào sách dạy nấu ăn cộng đồng, thường được đặt tên mycompany_originalthing
, sau đó thực hiện các công thức nấu ăn theo cách gọi include_recipe 'originalthing::whatever'
nhưng với nhiều thứ được thêm vào trước / sau hoặc với các cuộc gọi đến những thứ như edit_resource
thay đổi tài nguyên. Tránh edit_resource
khi có thể vì nó dẫn đến mã giòn, nhưng nó ở đó nếu bạn cần. Bạn cũng có thể sử dụng sách hướng dẫn trình bao bọc để đặt thuộc tính, lớp con hoặc bọc tài nguyên tùy chỉnh, v.v.
Đối với trường hợp cụ thể của "Tôi cần điều chỉnh một mẫu trong công thức cộng đồng", nó sẽ trông như thế này:
include_recipe 'original::whatever'
edit_resource!(:template, '/path/to/something') do
source 'mytemplate.erb'
cookbook 'mycompany_original'
end
Bạn có thể tìm thêm chi tiết về edit_resource
và bạn bè tại https://coderanger.net/rewind/
Với sách dạy nấu ăn dựa trên tài nguyên tùy chỉnh thay vì công thức nấu ăn, mọi thứ có thể trở nên phức tạp hơn nhưng các chi tiết cụ thể phụ thuộc rất nhiều vào cách chính xác cuốn sách nấu ăn mà bạn đang mở rộng được viết.