Có ai ở đây sử dụng DTO để chuyển dữ liệu từ bộ điều khiển sang chế độ xem không? Nếu vậy, bạn sẽ đề xuất lưu trữ những tệp đó ở đâu?/apps/dtos, sau đó cho phép chúng phản ánh cấu trúc thư mục lượt xem? Bất kỳ khuyến nghị nào về thử nghiệm những con vật này với rspec?ruby trên đối tượng Rails dto - Bạn lưu trữ chúng ở đâu?
Trả lời
Quy ước Rails không sử dụng các tầng phân tán cho các lớp điều khiển và xem. Sự tách biệt là có, nhưng nó là hợp lý và tương đối mỏng/nhẹ so với các loại khung bạn thấy trong đất Java.
Kiến trúc cơ bản là bộ điều khiển đặt các biến mẫu có sẵn trong chế độ xem tương ứng. Trong trường hợp chung, các biến cá thể sẽ là các cá thể mô hình hoặc các tập hợp các cá thể mô hình (đến từ cơ sở dữ liệu). Mô hình phải là cốt lõi của logic kinh doanh của bạn. Bộ điều khiển phối hợp các luồng dữ liệu. Lượt xem hiển thị nó. Các trình trợ giúp được sử dụng để định dạng các giá trị hiển thị trong khung nhìn ... bất kỳ thứ gì có giá trị mô hình và thực hiện điều gì đó chỉ cho mục đích hiển thị (bạn có thể thấy rằng một phương thức trợ giúp được sử dụng nhiều lần có thể thực sự tốt hơn trên chính mô hình).
Tuy nhiên, nếu bạn thấy rằng chế độ xem cần kiến thức về nhiều mô hình khác nhau, bạn có thể dễ dàng đưa mô hình vào đối tượng khác ở mức trừu tượng cao hơn. Không có gì ngăn cản bạn tạo các đối tượng không hoạt động ghi lại mà thu thập và phối hợp các mô hình AR thực tế của bạn. Sau đó, bạn có thể khởi tạo các đối tượng này trong bộ điều khiển và có sẵn chúng cho khung nhìn. Bạn thường phải ở mức độ phức tạp khá cao trong bộ điều khiển để cần loại điều này.
Tôi có xu hướng ném các đối tượng đó vào ứng dụng/kiểu máy - Rails đã tải mọi thứ trong thư mục này, giúp mọi thứ dễ dàng từ cấu hình/điểm mong đợi.
Nếu bạn đến từ nền .NET hoặc J2EE, bạn có thể nghĩ về các mẫu như DTO. Bạn có thể hoặc có thể không ngạc nhiên (và có thể hạnh phúc) để biết rằng Rails không làm những việc theo cách đó theo quy ước.
Đặc biệt, không cần thiết phải chuyển giao chính thức (hoặc lưu trữ) các đối tượng được tuần tự hóa giữa các bộ điều khiển và chế độ xem. Các biến cá thể (thường là các giá trị thuộc tính mô hình) được tạo ra trong bộ điều khiển có sẵn trong khung nhìn miễn phí như được cung cấp bởi khung công tác mà không cần bất kỳ nỗ lực lập trình bổ sung nào.
Điều tôi đã được thông báo là thường, đây là công việc được xử lý bởi 'người trợ giúp'. Về cơ bản, chúng giúp bạn định dạng các đối tượng mô hình của bạn để xem mức tiêu thụ từ trong chế độ xem. Vì vậy, nó chắc chắn không phải là một bản đồ khái niệm 1-1, nhưng đó là suy nghĩ trong thế giới đường ray
Vui lòng không nghe các câu trả lời khác. Họ thật khủng khiếp. Rails người giúp đỡ là khủng khiếp. Sử dụng các mô hình đường ray ở khắp mọi nơi là khủng khiếp. Tôi xin bạn, thiết kế ứng dụng của bạn đúng cách và quyết định xem bạn có cần DTO hay không. Quyết định xem bạn có thực sự muốn có các mô hình đường ray để xử lý những thứ khác ngoài giao tiếp với cơ sở dữ liệu hay không. Quyết định xem bạn có thực sự muốn không có một lớp giữa ứng dụng và đường ray của bạn và v.v. Thiết kế đường ray chỉ phù hợp cho các ứng dụng hoặc ứng dụng nhỏ phải được phát triển cực nhanh. Nhưng nếu nó không phải là một cái gì đó tầm thường và bạn mong đợi để phát triển nó một thời gian, hãy đầu tư thời gian của bạn vào thiết kế phù hợp. Đừng ngại phá vỡ các tiện ích của Rails. Và có thể lực lượng với bạn.
Cảm ơn Toby. Điều này sẽ mất một chút quen với, nhưng tôi thấy suy nghĩ. Tôi đánh giá cao câu trả lời rõ ràng. –