Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Ruby

Rails Scaffolding Giải Thích: Xây Dựng Giao Diện CRUD Ngay Lập Tức

Bạn có thể đang học Rails & đọc rằng bạn phải tạo một „scaffold“ để khởi động ứng dụng Rails của bạn…

Dễ dàng!

Bạn có thể làm điều này dùng lệnh rails g scaffold.

Nhưng scaffolding là gì?

„Scaffolding là một cấu trúc tạm thời dùng để hỗ trợ nhóm công nhân hỗ trợ xây dựng, bảo trì và sửa chữa tòa nhà, cây cầu và tất cả các cấu trúc nhân tạo khác.“ – Wikipedia

Dịch sang Rails:

Một scaffold là một tập hợp tệp được tạo tự động hình thành cấu trúc cơ bản của dự án Rails.

Các tệp này bao gồm:

  • Một controller
  • Một model
  • Views cho mọi action controller chuẩn (index, edit, show, new)

Một route mới.

Và một migration để chuẩn bị cơ sở dữ liệu.

Hãy xem ví dụ!

Cách Dùng Lệnh Rails Scaffold

Ví dụ scaffolding dự án cho trang web về sách trông như sau.

rails g scaffold books

Bạn sẽ thấy nhiều văn bản cuộn qua, chi tiết các tệp đang được tạo.

Ví dụ này tạo:

  • Một BooksController
  • Một model Book
  • Một route resources :books mới thêm vào tệp config/routes.rb
  • Một tập tệp liên quan đến test
  • Tệp view dưới app/views/books (tổng cộng năm)

Có.

Đó là nhiều thứ lắm.

Nếu bạn muốn hoàn tác scaffolding này, ngay sau khi tạo, bạn có thể dùng lệnh sau.

rails d scaffold books

Nơi „d“ nghĩa là „destroy“.

Hãy nhớ rằng điều này SẼ XÓA các tệp được tạo bởi quá trình scaffolding.

Bây giờ:

Trước khi bạn có thể dùng code được scaffold, bạn phải chạy migration để cập nhật schema cơ sở dữ liệu.

Dùng lệnh rails db:migrate.

Nếu không có thông báo lỗi nào hiện ra, bạn đã sẵn sàng! Bạn có cấu trúc cơ bản cho ứng dụng Rails mới, hoặc cho tính năng mới cần model, view & controller tương ứng.

Tiếp theo:

Chạy rails server.

Mở trình duyệt tại localhost:3000/books & bạn nên thấy kết quả!

Rails Scaffolding Với Trường Bổ Sung

Mặc định…

Model của bạn chỉ có trường timestamp, nghĩa là thông tin duy nhất bạn có thể ghi về sách (hoặc model nào bạn đang làm việc) là thời điểm chúng được tạo, hoặc cập nhật.

Cách scaffold với trường thêm:

rails g scaffold books title:string author:string publication_year:integer

Nếu bạn tạo scaffolding như vậy, bạn sẽ có 3 trường để làm việc.

Một title, một author, và một năm xuất bản.

Đó hơi thú vị hơn chỉ có timestamp cơ sở dữ liệu.

Btw.

Đây là cùng cú pháp dùng cho tạo migration với rails g migration.

Tạo Các Thành Phần Cụ Thể

Scaffolding tạo ra thứ bạn có thể không cần hoặc muốn ngay bây giờ.

Nhưng Rails tốt bụng.

Bạn có thể tạo thành phần riêng lẻ, như controller, dùng lệnh rails g (g cho generate).

Ví dụ:

  • rails g controller Fruit
  • rails g model Fruit name:string color:string (tạo model + migration)
  • rails g migration CreateBook title:string year:integer (chỉ tạo migration)

Một trong những lợi ích lớn của dùng lệnh scaffolding là tất cả tệp được tạo dùng quy ước đặt tên đúng, tránh thông báo lỗi lạ. Nó cũng tiết kiệm việc phải thủ công tạo các tệp này.

Btw…

Xem xét xóa tệp tự động tạo mà bạn không định dùng được coi là thói quen tốt. Vì vậy sau khi dùng generator như „g controller“, hãy xem danh sách tệp tạo & xóa những cái bạn không cần.

Tóm Tắt

Bạn đã học về scaffolding trong Ruby để nhanh chóng khởi động ứng dụng Rails mới để thực hành.

Khi bạn học thêm, bạn có thể muốn bỏ scaffolding.

Nhưng bạn vẫn có thể tạo từng controller, model, hoặc tệp view khi cần.

Cảm ơn bạn đã đọc! 🙂