Tôi đang sử dụng find_by_sql để kết nối với cơ sở dữ liệu Postgres và thực thi chức năng cơ sở dữ liệu. Hàm cơ sở dữ liệu thực hiện một số câu lệnh SQL và tăng các ngoại lệ theo yêu cầu.Làm thế nào để bạn truy cập thông tin lỗi cơ sở dữ liệu khi sử dụng Rails và Postgres
Làm cách nào để bẫy mã lỗi và thông báo lỗi được tăng lên bởi hàm Postgres trong Rails?
def self.validate_email(systemuserid, emailaddress)
begin
result = (self.find_by_sql(["SELECT fn_systemuser_validate_email(?, ?) AS returncode",
systemuserid, emailaddress])).first
rescue => err
# I want to get access to the error code and error message here and act accordingly
# errno = ??
# errmsg = ??
if errno == 10000
end
end
return result[:returncode]
end
Tôi bắt đầu bằng cách tìm thông tin này trong đối tượng kết nối - không may mắn như vậy.
Bất kỳ trợ giúp nào được đánh giá cao.
Cảm ơn bạn đã trả lời nhưng tôi e rằng điều này không thực sự hữu ích. –
Sự hiểu biết của tôi là mảng lỗi được sử dụng để trình bày lỗi trở lại cho người dùng do xác thực mô hình. Điều này khác. Tôi đang tìm kiếm quyền truy cập vào SQLCode/SQLState được trả về bởi Postgres như là kết quả của một cuộc gọi find_by_sql. Điều này xảy ra trước khi bất kỳ thứ gì được thêm vào mảng lỗi. Trong thực tế, điểm của điều này là tôi đang tìm cách kiểm soát chính xác những gì được thêm vào mảng lỗi như là kết quả của cuộc gọi hàm SQL. –
Tôi không thể thấy bất kỳ tài liệu nào ở bất cứ đâu về cách truy cập rõ ràng vào mã lỗi SQL. Có vẻ như tùy chọn duy nhất là thực hiện thao tác chuỗi để trích xuất nó từ thông báo lỗi. Rất không đạt yêu cầu. Tôi không thể tin rằng việc xử lý cơ sở dữ liệu là rất không linh hoạt nên có PHẢI là một giải pháp. –