5 kỹ năng nhất thiết phải biết trong ruby on rails

Bạn phải nâng cao khả năng làm việc của bạn với Ruby on Rails ? Đây là những điều bạn nhất thiết phải biết khi làm việc với nó.

I. Bạn phải tập trung bằng mắt vào việc theo dõi các model thông qua các Schema ở đằng sau.

Bạn có thể có được cái nhìn tổng quan và nhanh chóng về các model và các thuộc tính của chúng bằng cách kiểm tra chúng trong thư mục app/models. Nhưng điều này có những trường hợp như đối với rails 4, nhiều logic của model đã được refactored đến những nơi khác của hệ thống. Để lưu ý phát triển model, bạn cần phải có db/schema.rb: nó không chỉ cung cấp cho bạn cái nhìn sâu sắc về việc phát triển cấu trúc của ứng dụng, mà bạn còn có thể quan sát các quan hệ cơ sở dữ liệu qua nó. Việc phát triển theo cơ sở dữ liệu có thể đã lỗi thời, nhưng nó cũng không phải là 1 ý tưởng tồi để lấy 1 gợi ý từ file schema khi bạn cần phải phân tích 1 class. File schema.rb cũng sẽ cập nhật theo việc migrate cơ sở dữ liệu của bạn, vì vậy bạn không cần phải tải lại. Đây là 1 tài liệu rất quý giá về trạng thái hiện tại của model trong ứng dụng của bạn.

II. Rake routes.

Đó là một trong những câu lệnh hữu ích nhất - gỡ lỗi vè các dường lịnk - đó là rake routes. Khi bạn gặp phải gặp 1 dự án rails mới đang trong quá trình phát triển, hoặc bạn bị mất mọi thứ trong dự án Rails của mình, bạn chỉ cần chạy nó nó sẽ cung cấp cho bạn cái nhìn tổng quan về tất cả các URL có trong ứng dụng của bạn, cũng như tất cả các controller trong ứng dụng của bạn. Tiền tố ở đầu bảng sẽ cho bạn biết tiền tố bạn cần thêm vào các đường dẫn để dẫn đến view, ví dụ tiền tố là edit_product_path, bạn có thể gọi đường link edit_product_path(1) để có được đường link products/1/edit trên trình duyệt.

III. Sử dụng scope.

Thường khi bạn truy vấn dữ liệu, bạn sẽ thấy mình phải kết nối và sử dụng 1 số lệnh của ActiveRecord để xây dựng nên truy vấn của bạn. Tuy nhiên, điều này không chỉ gây lộn xộn trong code của bạn, mà khi bạn nhìn qua vào nó bạn rất khó để nói lên bạn đang cố gắng làm gì với cái truy vấn đó. Scope cho phép chúng ta viết thẳng 1 câu truy vấn nào đó ở trong model của bạn, giúp code của bạn sạch hơn và có thể tái sử dụng, việc đặt tên cho scope còn giúp chúng ta dễ dàng hơn trong việc hiểu được truy vấn của scope đó nó làm được gì, trả về cái gì. Ví dụ:

class Shirt < ActiveRecord::Base
    scope :dry_clean_only, -> { joins(:washing_instructions).where(‘washing_instructions.dry_clean_only = ?’, true) }
end

Điều này cho phép chúng ta gọi Shirt.dry_clean_only dể có được việc gọi truy vấn nhanh chóng và giúp code của bạn sạch đẹp hơn.

IV. Ngay cả khi bạn không có kế hoạch về việc dịch, hãy sử dụng đa ngôn ngữ.

Rails Framework được gói với một bộ công cụ quốc tế mạnh mẽ. Mọi người thường bỏ qua phần này của rails, đặt tất cả các mã ngôn ngữ cụ thể vào view với giả định là không phải dịch nó sang tiếng nước ngoài. Trên thực tế, các tính năng quốc tế hóa của Rails không chỉ dành cho bạn khi bạn cần phải làm web đa ngôn ngữ. Nó cũng cho phép bạn giữ các phần cụ thể về nội dung ứng dụng ở một nơi, làm cho việc phân phối nội dung cho các thành viên phi kỹ thuật được dễ dàng hơn.

V. Precompile assets.

Bạn cần phải theo dõi lỗi của sản phẩm trong quá trình phát triển. Bạn có thể xem các assets của production bằng việc biên dịch nội dung của thư mục app/assets và thư mục public/assets để bạn có thể bắt đầu xung quanh trong việc chỉnh sửa nội dung văn bản, style của sản phẩm. Gõ RAILS_ENV=production bundle exec rake assets:precompile trong thư mục gốc ứng dụng của bạn. Sau đó mở thư mục public/assets và các tài nguyên assets của bạn sẽ ở đó. Hãy chú ý chuỗi dài sau tên của asssets, nó được gọi là chuối số để phân biệt giữa các assets. Khi bạn cập nhật ứng dụng của bạn, nó sẽ không làm mất tập assets cũ, chúng sẽ được giữ lại và có 1 nhóm cập nhật (với các chuỗi digest được cập nhật mới) được đẩy vào thư mục public/assets. Đồng thời, các phương thức helper, ví dụ javascript_include_tag, nói digest mới vào bất cứ tệp nào mà nó đã tham chiếu - cập nhật assets file của bạn 1 lần. Nếu bạn đang sử dụng Sprockets, nó sẽ đưa ra hướng dẫn rõ ràng cho ứng dụng của bạn về nội dung mà assets chưa được giản nén mà đã được biên dịch.