Param Là Gì ? Tham Số Và Đối Số Khác Nhau Như Thế Nào

Giá đỡ

Để hiểu cách Rails diễn giải các tham số, bạn sẽ phải hiểu những điều cơ bản về Rack và cách Rails tương tác với nó. Theo tài liệu của giá:

Rack cung cấp một giao diện tối thiểu giữa các máy chủ web hỗ trợ Ruby và các khung Ruby. Để sử dụng Rack, hãy cung cấp một “ứng dụng”: một đối tượng phản hồi phương thức gọi, lấy hàm băm môi trường làm tham số và trả về một Mảng có ba phần tử:

Mã phản hồi HTTP Một hàm băm của các tiêu đề Nội dung phản hồi, phần này phải phản hồi từng

Về cơ bản, Rack sẽ nằm giữa máy chủ web và ứng dụng Rails của bạn.

Đang xem: Param là gì

Nó nhận yêu cầu từ máy chủ web, chuyển đổi nó thành một biến env (băm Ruby) mà Rails có thể hiểu được Rails nhận biến env đó, thực hiện những gì nó cần với nó và trả về một mảng đơn giản cho Rack bằng phản hồi HTTP mã, tiêu đề và nội dung phản hồi.Rack lấy mảng đó, chuyển đổi lại thành phản hồi HTTP phù hợp và gửi tới trình duyệt để hiển thị.!

“Params” là gì?

Để hiểu rõ hơn về nguồn gốc của params, chúng ta cần hiểu rõ hơn về nó. Nó có phải là Hash không? Phương pháp ? Còn gì nữa không?

Cách tốt nhất để tìm ra điều này là đặt bind.pry vào một hành động của bộ điều khiển và cố gắng tìm hiểu xem nó làm gì.

Xem thêm bài viết hay:  Virtualbox Headless Frontend là gì?

Hãy lấy 1 VD:

*

Sau khi gửi mẫu kiểm tra

*

Tiếp tục học:

tham số là một phương thức của lớp ActionController :: StrongParameter. Mặc dù các tham số được biểu diễn dưới dạng băm, nhưng nó thực sự là một thể hiện của lớp ActionController :: Paramameter.

*

Nếu bạn chưa quen với ActionController :: StrongParameter thì đây là một lớp giúp chúng ta bảo mật hơn và được sử dụng để hạn chế các tham số đầu vào. Nếu bạn đã sử dụng cú pháp này trước đây, bạn có thể cảm ơn ActionController :: StrongParameter:

params.require (: post) .permit! Bên trong mã nguồn ActionController :: StrongParameter, bạn sẽ tìm thấy các tham số trong đó.

*

Như bạn có thể thấy, params là một phương thức getter của lớp ActionController::StrongParameter và nó trả về một biến thực thể.
_params, là một thể hiện của lớp ActionController::Parameter.

Thoạt nhìn, điều này có vẻ không nhiều, nhưng điều này giải thích tại sao các tham số có sẵn cho chúng ta trong bộ điều khiển của chúng ta. Kiểm tra bảng điều khiển của bạn sẽ cho bạn biết lý do tại sao.

*

Chúng tôi có quyền truy cập vào các tham số vì bộ điều khiển của chúng tôi là hậu duệ của ActionController::StrongParameter và kế thừa tất cả các phương thức thể hiện của nó!

Mặc dù điều này giải thích bí ẩn về các params phổ biến, nhưng nó không giải thích được làm thế nào để đạt được nó. Nếu bạn giống tôi, bạn muốn biết toàn bộ câu chuyện. Ví dụ, request.parameters là gì? Nó đến từ đâu?

Xem thêm bài viết hay:  Ý Nghĩa Tên My Có Nghĩa Là Gì, Ý Nghĩa Tên My Là Gì Và Các Tên Đệm Đầy Ý Nghĩa

params đến từ đâu?

Sau khi tìm hiểu thêm về Rails, tôi bắt gặp ActionController::Metal. Về cơ bản, ActionController::Metal là phiên bản khung của ActionController::Base.

Xem thêm: Bộ Giấy Dán Nôi Cho Bé Trai Cho Bé ️ Nôi Cho Bé Trai

Nếu bạn xem mã nguồn của nó, bạn sẽ tìm thấy một số tài liệu liên quan đến yêu cầu cũng như một tập hợp các phương thức liên quan đến tham số.

*

Tại thời điểm này, tôi nên đề cập rằng, để tìm hiểu sâu hơn về Rails, tôi đã bao gồm một trình ghi dấu vết ngăn xếp.

*

Lý do tôi đề cập đến điều này là vì bạn sẽ thấy tất cả các phương thức được gọi khi Rails nhận được một biến env từ Rack – và có RẤT NHIỀU. Nếu bạn muốn xem mọi thứ diễn ra đằng sau hậu trường, hãy xem phần này.

*

Mặc dù nhật ký này rất ấn tượng và quái dị, nhưng chỉ có một vài dòng mà chúng ta cần lo lắng về thông số và ActionController::Metal.

*

Các dòng có liên quan được đánh dấu bằng màu xanh lam

*

ActionController::Metal#dispatch

*

ActionController::Metal::action

Dấu vết ngăn xếp này nói rằng sau khi Rails được khởi tạo với biến env, biến đó sẽ được chuyển qua Rails. Tại một số điểm, nó được hướng tới phương thức lớp ActionController::Metal::action. Bên trong phương thức này, ActionController::Metal khởi tạo một thể hiện mới của chính nó và gọi #dispatch, đặt
_request là một phiên bản mới của lớp ActionDispatch :: Request.

Xem thêm bài viết hay:  Discord là gì? Hướng dẫn sử dụng Discord cho người mới bắt đầu

Xem thêm: 12 Cung Hoàng Đạo Nữ Tháng Sinh, Ngày Sinh 12 Cung Hoàng Đạo Chính Xác Trong Năm 2020

ActionDispatch::Request là giao diện mà Rails sử dụng để tương tác với các yêu cầu HTTP (env) bắt nguồn từ Rack. Một trong những phương thức mà API này cung cấp là #parameters.

Bạn thấy bài viết Param Là Gì ? Tham Số Và Đối Số Khác Nhau Như Thế Nào có khắc phục đươc vấn đề bạn tìm hiểu ko?, nếu ko hãy comment góp ý thêm về Param Là Gì ? Tham Số Và Đối Số Khác Nhau Như Thế Nào bên dưới để duhoc-o-canada.com có thể thay đổi & cải thiện nội dung tốt hơn cho các bạn nhé! Cám ơn bạn đã ghé thăm Website: duhoc-o-canada.com của duhoc-o-canada.com

Nhớ để nguồn bài viết này: Param Là Gì ? Tham Số Và Đối Số Khác Nhau Như Thế Nào của website duhoc-o-canada.com

Chuyên mục: Là gì?

Viết một bình luận