Có thể tạo các ứng dụng toàn bộ đường ray trong một không gian tên chung không?Tôi có thể có các không gian tên phổ biến trong các ứng dụng đường ray mới không?
Giả sử rằng tên công ty của tôi là Acme, Inc. và tôi có các dự án đường ray sau: Blog, Store, WebService.
Theo mặc định, nếu tôi làm điều gì đó như rails new blog
các ứng dụng được tạo ra sẽ như thế nào:
module Blog
class Application < Rails::Application
module Store
class Application < Rails::Application
module WebService
class Application < Rails::Application
nơi mỗi dự án/ứng dụng là khép kín và không có tài liệu tham khảo ngầm cho công ty. Lý tưởng nhất là tôi muốn có tất cả các ứng dụng này theo những namespace công ty, vì vậy chúng tôi có thể giới thiệu cho họ như:
AcmeInc::Blog::Application
AcmeInc::Blog::Entities::Article
AcmeInc::Store::Application
AcmeInc::Store::Entities::Product
AcmeInc::Store::Entities::Order
AcmeInc::Store::Entities::Customer
etc...
Đây có phải là có thể? Được khuyến nghị?
Sử dụng: ruby-2.0.0-p451, đường ray 3.2.17
Cập nhật
Snapshot của tập tin được tạo và cơ cấu dự án sau khi làm đường ray mới acme/blog như đề xuất :
Sau đó, cách bạn có thể gọi các phương thức lớp đó và nơi bạn đưa vào mô-đun đó? –
3 ứng dụng đó phải độc lập với nhau. Các phương thức và mô-đun lớp phải được gọi giống như cách chúng được gọi trên ứng dụng mặc định. Bao gồm cả AcmeInc chỉ để nhóm tất cả các ứng dụng này theo mã nhận diện codebase của công ty. Đây là thủ tục rất phổ biến trên thế giới .net, nhưng tôi không chắc chắn nếu ruby / rails ứng dụng nên làm theo cùng một mô hình, do đó câu hỏi của tôi. – qbantek
Tính năng nhóm đó phục vụ mục đích gì? Nếu bạn đang cố gắng có các ứng dụng độc lập chia sẻ một số yếu tố và tương tác, bạn có thể muốn xem [Rails engines] (http://guides.rubyonrails.org/engines.html). Nếu mối quan tâm của bạn chỉ là không gian tên cho mục đích thẩm mỹ, tôi nghĩ bạn có thể đang chiến đấu với một số công ước ở đó. – tirdadc