2012-03-05 25 views
7

Tôi đã sử dụng Rails cho một vài tháng nay, và tôi khá thoải mái viết lên một dự án & thao tác Rails với nhu cầu của tôi, vvSửa đổi Rails: Người dùng cấp cao tìm ra những gì cần phải thay đổi?

Gần đây tôi đã cố gắng để có được một ít tiên tiến hơn, vì vậy tôi đã cố gắng sửa đổi/thêm vào codebase ray hiện có: thêm các phương thức trợ giúp biểu mẫu mới, thêm phương thức responds_to: pdf, v.v ... và tôi đã gặp rất nhiều vấn đề.

Khó khăn là tìm hiểu mã nào tôi cần sửa đổi; nơi mã đó được đặt và cách đảm bảo tôi không bỏ lỡ mã có liên quan trong các tệp khác. Tôi đoán có một cách mọi người học cách làm điều này, nhưng tại thời điểm này tôi hầu như chỉ đoán và hy vọng.

Tôi đoán câu hỏi của mình là, làm cách nào để các nhân viên Rails tìm hiểu nơi mã họ cần sửa đổi được chỉnh sửa & cách tiếp cận để chỉnh sửa nó? Nó có vẻ như nó chỉ là một cái gì đó bạn cần phải biết từ trước khi quen thuộc, nhưng tôi đoán có phải là một phương pháp đơn giản để hiểu nơi (và những gì) để chỉnh sửa.

Bất cứ ý tưởng được đánh giá cao ... chúc mừng

+0

Điều bạn đã mô tả khá chính xác đối với những gì tôi làm! –

+0

câu hỏi hay, tôi muốn biết làm thế nào người khác làm. Tôi chỉ sử dụng [API doc] (http://apidock.com/rails) để xem qua mã nguồn cho đến khi tôi hiểu được cơ chế. Một cách khác để đạt được kiến ​​thức ... là ngăn xếp tràn! khi tôi bắt đầu học đường ray, tôi đã sử dụng để quét tất cả các câu hỏi liên quan đến đường ray và cố tự tìm câu trả lời. Làm điều này, tôi đã học được rất nhiều về đường ray nội bộ. Tuy nhiên, , tôi không chắc chắn câu hỏi này thuộc về đây. Có thể trên http://codereview.stackexchange.com? –

Trả lời

3

tôi khuyên bạn nên Jose Valim của Crafting Rails Applications

Bạn đi qua các dự án tiên tiến, xây dựng ra các loại động cơ và các tùy chỉnh mà sẽ đưa bạn đến một tầm cao mới trong sự phát triển Rails của bạn.

Từ trang web:

Cuốn sách này sẽ giúp bạn hiểu hoạt động bên trong Rails 3, bao gồm máy phát điện, xử lý mẫu, quốc tế hóa, định tuyến, và đáp ứng.

+0

Cảm ơn bạn đã phản hồi. Tôi đã đọc Crafting & thích nó, nhưng tôi đã không nhận được một toàn bộ rất nhiều cái nhìn sâu sắc vào một phương pháp luận cho sự hiểu biết các phần không quen thuộc của khuôn khổ. Một phương pháp để tạo ra đá quý, vâng - nhưng khi khung công tác bị bẻ khóa, dường như có một cách tiếp cận 'chỉ cần gõ cái này' thay vì cách người ta hiểu được các phần của khuôn khổ đang được sửa đổi. – PlankTon

+0

@unclaimedbaggage Nếu bạn làm chủ Crafting, thì đã đến lúc bạn đi sâu vào. Chạy thử nghiệm rake, thực hiện thay đổi, chạy lại các bài kiểm tra. Nói lại. Không có chuyến tham quan có hướng dẫn ở cấp độ đó. –

-2

gì bạn đang yêu cầu là cách MVC công trình. Cơ bản bạn có thể nói:

1.) Đặt logic vào mô hình! Mô hình là mọi thứ xoay quanh.

2.) Bộ điều khiển là trung gian giữa mô hình và chế độ xem. Bạn không đặt bất kỳ logic nào ở đây không liên quan đến việc chọn dữ liệu từ cơ sở dữ liệu sẽ được hiển thị trong khung nhìn. Nếu bạn sử dụng một logic lựa chọn nhiều hơn một lần, hãy tạo ra một scope trong Mô hình và sử dụng nó trong Bộ điều khiển.

3.) Chế độ xem chỉ hiển thị ở đó để hiển thị mọi thứ! Bạn không đặt bất kỳ logic ở đây! Tất cả logic đến từ mô hình và dữ liệu đến từ bộ điều khiển. Logic duy nhất mà bạn sử dụng ở đây là các vòng lặp thông qua các mảng dữ liệu sẽ được hiển thị.

Sau đó, bạn có một số thứ bị thiếu. Nếu bạn có một nhiệm vụ liên quan đến một dịch vụ bên ngoài như cho phép nói một dịch vụ SOAP bạn viết một lớp cho điều đó quá! Chỉ cần bỏ qua sử dụng ActiveRecord :: Base thừa kế giống như được tạo bởi scaffolder. Bạn có thể gọi Lớp này trong các mô hình khác. Không đặt điều này cho bộ điều khiển hoặc sao chép mã trong mọi lớp cần! Ở lại DRY (Không tự lặp lại). Chỉ cần viết một lớp cho nó và bao gồm nó trong các mô hình khác!

Một điều khác là cơ sở dữ liệu cơ bản: Không lưu trữ dữ liệu có thể được tính từ các trường khác từ cơ sở dữ liệu! Bạn có thể thêm các phương pháp tính toán những thứ bạn cần nhưng không bắt đầu với các bản sao.

+0

Cảm ơn bạn đã phản hồi, nhưng không hoàn toàn là những gì tôi đã làm. Tôi cảm thấy thoải mái khi sử dụng đường ray và tích hợp các tập lệnh ruby. Nó đang mở rộng/ghi đè chính khuôn khổ khiến tôi sợ hãi. ;-) – PlankTon

Các vấn đề liên quan