Cấu Trúc Thư Mục Của Ruby on Rails
Sau khi sử dụng các lệnh có trong Ruby on Rails để tạo ra ứng dụng blog đầu tiên thì bạn sẽ thấy trên thư mục gốc của ứng dụng Rails đã tạo sẵn một danh sách các thư mục và tập tin cho bạn. Ruby on Rails Framework gợi ý một cấu trúc thư mục cho các lập trình viên khi phát triển ứng dụng. Hầu hết ...
Sau khi sử dụng các lệnh có trong Ruby on Rails để tạo ra ứng dụng blog đầu tiên thì bạn sẽ thấy trên thư mục gốc của ứng dụng Rails đã tạo sẵn một danh sách các thư mục và tập tin cho bạn. Ruby on Rails Framework gợi ý một cấu trúc thư mục cho các lập trình viên khi phát triển ứng dụng. Hầu hết tất cả các ứng dụng được viết dựa trên Ruby on Rails thường tuân theo một cấu trúc thư mục thống nhất với mỗi thư mục khác nhau sẽ được sử dụng với các mục định khác nhau. Trong bài viết này chúng ta sẽ tìm hiểu cấu trúc các thư mục trong Ruby on Rails.
Thư Mục app
Thư mục này chứa các controllers, models, views, helpers, mailers và assets cho ứng dụng. Trong đó:
- controllers: các tập tin controller dùng để điều hướng luồng chạy của ứng dụng.
- models: các tập tin models được dùng để tương tác với database trong ứng dụng (hoặc dùng để mô phỏng một đối tượng mà không cần kết nối tới database).
- helpers: các tập tin helpers chứa các hàm (hoặc các lớp) hỗ trợ và được sử dụng bởi controllers, models hay views.
- views: các tập tin views được sử dụng bởi controller dùng để hiển thị nội dung của trang.
- mailers: bao gồm các template mẫu dùng để gửi email.
- assets: bao gồm các tập tin như ảnh, css, javascripts...
Thư Mục components
Các components giống như một ứng dung mini và nó có thể chứa các models, views và controllers của riêng nó.
Thư Mục bin
Thư mục này bao gồm các đoạn mã script để khởi động ứng dụng Rails hoặc dùng để thiết lập hay deploy ứng dụng.
Thư Mục config
Thư mục này dùng để cấu hình ứng dụng như cấu hình các thông số của database, định nghĩa các routes...
Tập Tin config.ru
Tập tin này dùng để cấu hình cho Rack server nếu bán sử dụng Rack để chạy ứng dụng.
Thư Mục db
Thư mục này chứa các tập tin dùng để tạo cấu trúc schema cho database và các tập tin migrations.
Tập Tin Gemfile và Gemfile.lock
Tập tin Gemfile dùng để liệt kê những gem nào dùng trong ứng dụng và Gemfile.lock dùng để ghi lại thông tin về quá trình cài đặt các gem.
Thư Mục lib
Bao gồm các thư viện được dùng trong ứng dụng. Thông thường các thư viện này được viết bởi chính những lập trình viên tham gia vào viết ứng dụng. Các thư viện của bên thứ 3 thường không được đặt ở trong thư mục này mà sẽ để trong thư mục vendor mà tôi sẽ đề cập ở phần dưới đây.
Thư Mục log
Chứa các bản ghi log các thông tin trong quá trình cài đặt, khởi động, chạy hay ngừng ứng dụng.
Thư Mục public
Nội dung của các tập tin đặt trong thư mục này sẽ có thể được tải trực tiếp về trình duyệt. Ví dụ ứng dụng của bạn được truy cập thông qua tên miền là hoclaptrinh.org thì khi bạn để một tập tin có tên là logo.png trong thư mục này, bạn có thể truy cập trực tiếp tập tin trên qua đường dẫn hoclaptrinh.org/logo.png. Thông thường chúng ta sẽ để chứa các tập tin css, javascript hay hình ảnh trong thư mục này.
Tập Tin Rakefile
Tập tin Rakefile được Rails sử dụng để tìm kiếm các tác vụ mà chúng có thể được thực thi trên cửa sổ dòng lệnh thông qua rake. Bạn không nên định nghĩa trực tiếp các tác vụ này trong Rakefile mà việc định nghĩa các tác vụ này được thực hiện thông qua các tập tin trong thư mục lib/tasks.
Tập Tin README.rdoc
Tập tin này chứa các thông tin tổng quan về ứng dụng như mô tả ngắn gọn mục đích của ứng dụng, phiên bản ứng dụng, thông tin tác giả viết ứng dụng hay loại giấy phép phát hành ứng dụng...
Thư Mục test
Thư mục này dùng để chứa các test case sử dụng trong ứng dụng bao gồm unit tests, fixture tests và các loại test khác có trong Ruby on Rails.
Thư Mục tmp
Lưu các tập tin tạm thời thường là các tập tin cache, pid hay sessions.
Thư Mục vendor
Thư mục này chứa các thư viện của bên thứ 3 được sử dụng trong ứng dụng.
Trên đây là danh sách các thư mục và tập tin được sử dụng trong ứng dụng Rubu on Rails và mô tả ngắn gọn nội dung của chúng. Thông qua bài viết này hy vọng bạn có được cái nhìn tổng quan về cấu trúc của một ứng dụng Ruby on Rails.