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
[React Native] Dựng base App React Native - Mobx - Áp dụng thực tế
Chào mọi người.
Ở bài hôm trước chúng ta đã tìm hiểu về Mobx là gì rồi. Mọi người có thể đọc lại ở đây.
Và hôm nay chúng ta sẽ đi vào bài toán thực tế mà chúng ta có thể sử dụng với Mobx.
Phân quyền
Với các bài toán về phân quyền thì chúng ta sẽ gặp rất là nhiều. Chúng ta có thể sử dụng nhiều cách, nhiều phương pháp để giải quyết bài toán đó. Và hôm nay mình sẽ giới...
reactnative
1163
Cách sử dụng trình quét Virus trên cPanel
Home » Tài Liệu » Cách sử dụng trình quét Virus trên cPanel
Bài viết này mô tả cách sử dụng trình quét virus trong cPanel để quét các file tài khoản của bạn để tìm virus, trojan và các loại phần mềm độc hại khác. Bạn có thể quét các file e-mail, file trong source web và thư mục FTP hoặc toàn bộ...
1874
Edx3 - Open edx là gì?
Open edx là gì?
Open edX là một mã nguồn mở có sẵn các chức năng đáp ứng một mô hình đào tạo từ xa MOOC hoàn chỉnh. Là một nền tảng cho mọi nhu cầu học tập của bạn.
3.1 Tổng quan về Open edX
Open edX được xây dựng để đem lại những gì mới nhất trong khoa học nghiên cứu, thiết kế giảng dạy. Nền tảng Open edX được cải thiện từng ngày bởi cộng đồng các nhà phát triển, nhà cung cấp...
Education
May Fest
MOOC
Open edX
2476
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.