10 Mẹo Dùng Routes Trong Rails Hiệu Quả Hơn

0 0 0

Người đăng: Đặng Đình Luân

Theo Viblo Asia

File config/routes.rb là nơi định nghĩa luồng request – response của ứng dụng Rails. Khi biết cách tổ chức và tối ưu route, chúng ta không chỉ giúp code sạch hơn mà còn làm app dễ bảo trì và mở rộng. Dưới đây là 10 mẹo giúp bạn làm chủ hệ thống route trong Rails.

1. Ưu tiên sử dụng resources thay vì viết thủ công

# Good
resources :posts # Bad
get '/posts', to: 'posts#index'
post '/posts', to: 'posts#create'

👉 Sử dụng resources giúp tự động tạo đầy đủ các route RESTful.

2. Giới hạn route với onlyexcept

Chỉ định rõ những action nào bạn cần:

resources :posts, only: [:index, :show]
resources :comments, except: [:destroy]

👉 Tránh tạo ra những route không sử dụng, giúp giảm bớt nguy cơ bảo mật.

3. Tổ chức route theo namespace hoặc scope

namespace :admin do resources :users
end

Sinh ra: /admin/users, controller: Admin::UsersController.

Hoặc dùng scope để nhóm route mà không đổi controller:

scope '/v2' do resources :products
end

👉 Phù hợp cho versioning API hoặc tách biệt backend/frontend.

4. Dùng concern để tái sử dụng nhóm routes

Khi nhiều resource dùng chung logic như like, comment:

concern :commentable do resources :comments
end resources :posts, concerns: :commentable
resources :videos, concerns: :commentable

👉 Viết một lần, tái sử dụng nhiều nơi – DRY (Don't Repeat Yourself).

5. Dùng membercollection cho route tùy chỉnh

resources :posts do member do get :preview end collection do get :archived end
end
  • member: áp dụng cho một bản ghi (/posts/:id/preview)
  • collection: áp dụng cho toàn bộ (/posts/archived)

6. Sắp xếp route theo nhóm logic

Chia rõ các phần trong file routes.rb theo module hoặc theo domain:

# Public
resources :posts
resources :users # Admin
namespace :admin do resources :posts
end

👉 Giúp file routes.rb dễ đọc và tìm kiếm hơn khi project lớn.

7. Đặt tên route để dễ gọi trong view/controller

get 'dashboard', to: 'admin#dashboard', as: :admin_dashboard // Gọi trong view
<%= link_to 'Dashboard', admin_dashboard_path %>

👉 Tránh viết tay URL, code dễ bảo trì hơn.

8. Kiểm tra toàn bộ routes bằng rails routes

rails routes | grep posts

👉 Dễ dàng xem tất cả routes đã được định nghĩa, tìm lỗi nhanh.

9. Cẩn thận với route động (match, :any)

Tránh dùng match ':anything', via: :all trừ khi cần xử lý đặc biệt như 404 page.

👉 Các route này có thể “bắt” mọi request và gây khó debug.

10. Dùng constraint khi cần kiểm soát route nâng cao

constraints subdomain: 'admin' do get 'dashboard', to: 'admin#dashboard'
end // Hoặc với regex:
get '/:username', to: 'profiles#show', constraints: { username: /[A-Za-z0-9_\.]+/ }

👉 Tạo route thông minh và đúng ngữ cảnh với user.

Kết luận

Một hệ thống route gọn gàng, rõ ràng giúp ứng dụng Rails dễ bảo trì, mở rộng và tránh lỗi khó chịu. Hãy coi routes.rb như “bản đồ” của ứng dụng – giữ nó sạch sẽ là điều rất đáng làm.

Bạn đang dùng những mẹo nào trong route hiện tại? Comment chia sẻ thêm nhé!

Bình luận

Bài viết tương tự

- vừa được xem lúc

Docker: Chưa biết gì đến biết dùng (Phần 3: Docker-compose)

1. Mở đầu. . .

0 0 135

- vừa được xem lúc

Tích hợp VNPAY vào Rails

Xin chào 500 ae năm mới nhé. Tiếp nối câu chuyện về Thanh toán online mà mình có chia sẽ ở 2 bài trước, mọi người chưa đọc thì có thể vào xem ở đây nhé.

1 1 102

- vừa được xem lúc

Tìm hiểu Adapter Pattern trong Rails

. Nếu là một web developer chắc hẳn chúng ta đã không ít lần đọc qua về các Design patterns hay cách áp dụng chúng để làm cho code trở nên hướng đối tượng hơn, dễ đọc, dễ hiểu, dễ maintain, dễ mở rộng, … Các design patterns được áp dụng khá nhiều trong các Rails projects như Service Object, Decorato

0 0 52

- vừa được xem lúc

Sử dụng Searchkick để tìm kiếm thông minh trên Rails và Elasticsearch

Bạn đã bao giờ tự hỏi, ứng dụng web của mình có thể mở rộng quy mô bằng cách học được các từ khóa mà người dùng tìm kiếm? Có giải pháp nào cung cấp công cụ tìm kiếm tự động nhanh chóng với chỉ 1 từ khóa bất kì? Thật may khi có Searchkick và Elasticsearch là các công cụ hỗ trợ công việc tìm kiếm trở

0 0 110

- vừa được xem lúc

Những sai lầm bạn có thể mắc phải khi code Rails

. Chào các bạn, chào các bạn. Đừng vội đóng tab nha.

0 0 53

- vừa được xem lúc

Một số lưu ý cải thiện performance khi làm việc với Rails

Khi làm việc với ruby on rails chắc hẳn chúng ta sẽ làm việc với active record rất nhiều. Tuy nhiên có nhiều điều có thể ta vẫn chưa thực sự hiểu, ví dụ như ActiveRecord execute SQL query như thế nào? Và cũng còn khá nhiều lập trình viên khác cũng không để ý tới điều này.

0 0 116