Ruby on Rails - Framework
Khung là một chương trình, một tập hợp các chương trình và / hoặc thư viện mã viết hầu hết các ứng dụng của bạn cho bạn. Khi bạn sử dụng một khuôn khổ, công việc của bạn là viết các phần của ứng dụng để làm cho nó thực hiện những điều cụ thể mà bạn muốn.
Khi bạn bắt đầu viết một ứng dụng Rails, bỏ qua một bên cấu hình và các công việc nội trợ khác, bạn phải thực hiện ba tác vụ chính:
Describe and model your application's domain- Miền là vũ trụ của ứng dụng của bạn. Miền có thể là cửa hàng âm nhạc, trường đại học, dịch vụ hẹn hò, sổ địa chỉ hoặc kho phần cứng. Vì vậy, ở đây bạn phải tìm ra những gì trong đó, những thực thể nào tồn tại trong vũ trụ này và các vật phẩm trong đó liên quan với nhau như thế nào. Điều này tương đương với việc mô hình hóa cấu trúc cơ sở dữ liệu để giữ các thực thể và mối quan hệ của chúng.
Specify what can happen in this domain- Mô hình miền tĩnh; bạn phải làm cho nó năng động. Địa chỉ có thể được thêm vào sổ địa chỉ. Điểm âm nhạc có thể được mua từ các cửa hàng âm nhạc. Người dùng có thể đăng nhập vào một dịch vụ hẹn hò. Sinh viên có thể đăng ký các lớp học tại một trường đại học. Bạn cần xác định tất cả các tình huống hoặc hành động có thể xảy ra mà các phần tử trong miền của bạn có thể tham gia.
Choose and design the publicly available views of the domain- Tại thời điểm này, bạn có thể bắt đầu suy nghĩ theo thuật ngữ trình duyệt Web. Khi bạn đã quyết định rằng miền của mình có sinh viên và họ có thể đăng ký lớp học, bạn có thể hình dung trang chào mừng, trang đăng ký và trang xác nhận, v.v. Mỗi trang hoặc dạng xem này đều cho người dùng thấy mọi thứ đứng ở một điểm nhất định.
Dựa trên ba nhiệm vụ trên, Ruby on Rails xử lý một khuôn khổ Model / View / Controller (MVC).
Ruby on Rails MVC Framework
Các Model View CNguyên tắc ontroller chia công việc của một ứng dụng thành ba hệ thống con riêng biệt nhưng hợp tác chặt chẽ.
Mô hình (ActiveRecord)
Nó duy trì mối quan hệ giữa các đối tượng và cơ sở dữ liệu và xử lý xác thực, liên kết, giao dịch, v.v.
Hệ thống con này được triển khai trong thư viện ActiveRecord, cung cấp giao diện và ràng buộc giữa các bảng trong cơ sở dữ liệu quan hệ và mã chương trình Ruby thao tác với các bản ghi cơ sở dữ liệu. Tên phương thức Ruby được tạo tự động từ tên trường của bảng cơ sở dữ liệu.
Xem (ActionView)
Đây là một bản trình bày dữ liệu theo một định dạng cụ thể, được kích hoạt bởi quyết định trình bày dữ liệu của người kiểm soát. Chúng là các hệ thống mẫu dựa trên tập lệnh như JSP, ASP, PHP và rất dễ tích hợp với công nghệ AJAX.
Hệ thống con này được triển khai trong thư viện ActionView, là một hệ thống dựa trên Ruby nhúng (ERb) để xác định các mẫu trình bày để trình bày dữ liệu. Mọi kết nối Web với ứng dụng Rails dẫn đến việc hiển thị một dạng xem.
Bộ điều khiển (ActionController)
Cơ sở bên trong ứng dụng hướng lưu lượng truy cập, một mặt, truy vấn các mô hình cho dữ liệu cụ thể, và mặt khác, tổ chức dữ liệu đó (tìm kiếm, sắp xếp, nhắn tin) thành một biểu mẫu phù hợp với nhu cầu của một dạng xem nhất định.
Hệ thống con này được thực hiện trong ActionController, là một nhà môi giới dữ liệu nằm giữa ActiveRecord (giao diện cơ sở dữ liệu) và ActionView (công cụ trình bày).
Trình bày bằng hình ảnh của Khung MVC
Dưới đây là một đại diện bằng hình ảnh của Ruby on Rails Framework -
Biểu diễn thư mục của MVC Framework
Giả sử cài đặt tiêu chuẩn, mặc định trên Linux, bạn có thể tìm thấy chúng như thế này -
tp> cd /usr/local/lib/ruby/gems/2.2.0/gems
tp> ls
Bạn sẽ thấy các thư mục con bao gồm (nhưng không giới hạn) như sau:
- actionpack-x.y.z
- activerecord-x.y.z
- rails-x.y.z
Qua cài đặt windows, bạn có thể tìm thấy chúng như thế này -
tp>cd ruby\lib\ruby\gems\2.2.0\gems
ruby\lib\ruby\gems\2.2.0\gems\>dir
Bạn sẽ thấy các thư mục con bao gồm (nhưng không giới hạn) như sau:
ActionView và ActionController được nhóm lại với nhau trong ActionPack.
ActiveRecord cung cấp một loạt các kỹ thuật lập trình và phím tắt để thao tác dữ liệu từ cơ sở dữ liệu SQL. ActionController và ActionView cung cấp các phương tiện để thao tác và hiển thị dữ liệu đó. Đường ray gắn kết tất cả lại với nhau.