12/08/2018, 18:17

Truy Vấn Chân Kinh - Phần một: Giới thiệu về Active Record và một vài phương thức truy vấn cơ bản không phải ai cũng biết

Mở đầu Đây là phần mở đầu cho cuốn Truy Vấn Chân Kinh trong bộ series hướng dẫn về Ruby on Rails mà mình sẽ gắng công biên soạn trong thời gian sắp tới. Uớc tính bộ này sẽ gồm ít nhất sáu phần, bao quát những mảng kiến thức thú vị và hay ho liên quan đến các vấn đề về truy vấn trong Ruby on ...

Mở đầu

Đây là phần mở đầu cho cuốn Truy Vấn Chân Kinh trong bộ series hướng dẫn về Ruby on Rails mà mình sẽ gắng công biên soạn trong thời gian sắp tới. Uớc tính bộ này sẽ gồm ít nhất sáu phần, bao quát những mảng kiến thức thú vị và hay ho liên quan đến các vấn đề về truy vấn trong Ruby on Rails.

Ở phần này, mình sẽ giới thiệu qua về khái niệm và vai trò của Active Record. Sau đó sẽ giới thiệu những phương thức cơ bản trong truy vấn với Active Record như phương thức find, find_by, first, take. Ngoài ra mình cũng sẽ đưa ra một vài phân tích và so sánh nhỏ để rút ra một số tips, tricks và warning mà bạn đọc nên biết để sử dụng một cách hợp lý, tránh sự nhầm lẫn gây hại cho mình và cho đồng đội.

Active Record là gì?

Đây mặc dù là một khái niệm cơ bản nhưng có lẽ đến giờ nhiều bạn juniors vẫn còn đang mông lung chưa biết chính xác Active Record thực sự là gì hay bản thân mình đã từng sử dụng nó dưới hình thức nào. Nếu đúng là như vậy thì đây là phần bạn đọc cần ngâm kỹ để thanh tẩy trước khi nhập môn.

Định nghĩa chung:

Tài liệu hay bản ghi đang trong quá trình xử lý và được cần đến, được tham chiếu tới một cách thường xuyên

Đây là một khái niệm không mới, nó được dùng trong nhiều lĩnh vực khác nhau. Đối với Rails, Active Record được sử dụng dưới dạng một ORM (Object-Relational Mapping). Đây là kỹ thuật được sử dụng rộng rãi gần đây dành cho các framwework backend, cho phép chúng ta quản lý dữ liệu bằng kiểu ngôn ngữ logic nghiệp vụ mà lập trình viên cảm thấy thoải mái nhất. Nói một cách cụ thể hơn, nó giống như một tầng làm cầu nối giữa database và logic code của bạn, giúp bạn có thể sử dụng chính ngôn ngữ lập trình để thao tác với database mà không cần viết các câu lệnh SQL dài dòng và khô cứng.

Rails Model

Active Record giao tiếp với database, nó đóng vai trò là phần M trong MVC của Rails: models. Model là nơi xử lý hầu hết các business logic trong ứng dụng. Nếu muốn lưu trữ các thông tin về nguời dùng trong ứng dụng, bạn cần tạo một bảng trong database đặt tên là users. Nếu muốn truy nhập vào bảng đó từ bên trong ứng dụng, bạn chỉ việc tạo một model có tên là User. Và từ đó mọi logic code mà bạn cần phải sử dụng cho dữ liệu của bảng users đó đều chỉ việc đặt trong model User. Một bảng trong database sẽ tương ứng với một model được thừa kế từ Active Record, bạn có thể nhìn thấy rõ điều đó:

class User < ApplicationRecord
end

Để tìm hiểu kỹ hơn về Active RecordORM, cũng như Rails model, mình khuyên bạn đọc tham khảo bài viết này.

Nói tóm lại, Active Record giúp lập trình viên tránh phải sử dụng trực tiếp SQL thuần trong hầu hết các trường hợp. Chúng ta hãy cùng chuyển sang phần tiếp theo để tìm hiểu rõ hơn về điều này.

Các phương thức cơ bản trong truy vấn với Rails

Active Record hỗ trợ rất nhiều phương thức rất đầy đủ và hay ho để bạn có thể "chơi đùa" với cơ sở dữ liệu (nói chơi vậy thôi chứ đừng đùa với database nhé             </div>
            
            <div class=

0