Dashboard
1. Gem better_erros:
Gem better_errors được dùng để thay thế trang hiển thị lỗi mặc định của Rails với nhiều chức năng hữu ích hơn
a. Default error page:
Trang hiển thị lỗi mặc định của Rails gồm các phấn như sau
Dòng code gay ra lỗi
Stack trace
Error response
Shell để run test code
b. Install gem better_erors:
c. Better errors page:
Trang hiển thị lỗi của better_errors gồm các phần như sau
Full stack trace
Source code tương ứng với mỗi stack trace
Variable được gọi và giá trị của variable trong stack trace
Shell ứng với mỗi stack trace
Link để mở source code của stack trace với editor tương ứng
Link source code demo: https://github.com/thanhlt-1007/demo_better_errors
2. Gem exception_handler:
Gem exception_handler được dùng để thay thế trang hiển thị lỗi mặc định của Rails với dynamic views có thể custom được
a. Install gem exception_handler:
b. Exception handler page:
Trang hiển thị lỗi của exception_handler
Các option khác để custom exception handler:
i: DB:
Sau khi install gem exception_handler ta có thể chạyrails db:migrate
Gem exception_handler sẽ update file schema, tạo table errors có nội dung như sau# db/schema.rb
create_table "errors", force: :cascade do |t|
t.text "class_name"
t.text "status"
t.text "message"
t.text "trace"
t.text "target"
t.text "referrer"
t.text "params"
t.text "user_agent"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
Khi xảy ra lỗi, gem exception_handler sẽ insert record vào table errors
Tạo model Error ứng với table errors
class Error < ApplicationRecord
end
ii. Views (layouts, locale):
Màn hình error của gem exception_handler được generate bởi action show của ExceptionHandler::ExceptionsController
-Bạn có thể check source code tại đây
Để custom layout, bạn có thể overrite lại action show của ExceptionHandler::ExceptionsController hoặc thay đổi layout và locale
Custom locale
Custom layout
Theo mặn định thì error page của gem exception_handler sẽ sử dụng layout layouts/exception
Bạn có thể check tại đây
Bạn có thể overrite lại file layout này
Hoặc sử dụng config để quy định layout theo 1 trong các hướng sau
Sử dụng layout được quy định bởi ApplicationController
config. exception_handler = {
exceptions: {
all: { layout: nil }
}
}
Quy định layout riêng cho từng lại exception theo HTTP status
config. exception_handler = {
exceptions: {
all: { layout: 'exception' } ,
5 xx: { layout: 'server_error_exception' } ,
4 xx: { layout: 'client_error_exception' } ,
500 : { layout: 'internal_server_error_exception' }
}
}
iii. Generators:
Source: https://viblo.asia/p/mot-so-gem-lien-quan-den-hien-thi-loi-va-custom-error-page-cua-rails-V3m5WdRvKO7
Random articles
Sử dụng cache với Youtube API
Giới thiệu
Xin chào các bạn, hôm nay mình sẽ giới thiệu cách để cache lại dữ liệu khi sử dụng API của bên thứ 3, cụ thể là Youtube API V3 nhé.
Bài toán ở đây là mình cần một box hiển thị lên thống kê từ kênh Youtube của công ty S, gồm thông tin của Channel: Tên, lượt follow, avatar; và thông tin của video mới nhất: Ảnh thumbnail, tên video, lượt xem, ngày đăng, cụ thể như hình dưới đây:
Bây...
Youtube API
2585
Giới thiệu về trình thông dịch của ViL
Lời dẫn
ViL là ngôn ngữ kịch bản, chúng ta sẽ cùng làm trình thông dịch cho nó. Bạn có thể dùng bất cứ ngôn ngữ nào để triển khai trình thông dịch, trong series này mình sẽ sử dụng Dart.
Dart là ngôn ngữ được tối ưu hóa cho ứng dụng khách chạy nhanh trên mọi nền tảng. Với việc sử dụng dart, sau khi thực hiện xong series này, chúng ta sẽ làm IDE cho ViL bằng Flutter
chạy trên cả 5 nền tảng:...
ViL
1652
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session.
You signed out in another tab or window. Reload to refresh your session.