Param Là Gì ? Tham Số Và Đối Số Khác Nhau Như Thế Nào – Trường THPT Phan Đình Phùng

Giá đỡ

Để hiểu cách Rails diễn giải những 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 phân phối một giao diện tối thiểu giữa những sever web tương hỗ Ruby và những khung Ruby. Để sử dụng Rack, hãy cung ứng một “ ứng dụng ” : một đối tượng người tiêu dùng phản hồi phương pháp gọi, lấy hàm băm thiên nhiên và môi trường làm tham số và trả về một Mảng có ba thành phần :
Mã phản hồi HTTP Một hàm băm của những 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 nhu yếu từ sever web, quy đổi nó thành một biến env ( băm Ruby ) mà Rails hoàn toàn có thể hiểu được Rails nhận biến env đó, thực thi những gì nó cần với nó và trả về một mảng đơn thuầ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 đó, quy đổi lại thành phản hồi HTTP tương thích 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, tất cả 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 vi của bộ điều khiển và tinh chỉnh và nỗ lực khám phá xem nó làm gì .
Hãy lấy 1 VD :

*

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

*

Tiếp tục học :
params là một phương pháp của lớp ActionController :: StrongParameter. Mặc dù tham số được trình diễn dưới dạng hàm băm, nhưng nó thực sự là một bộc lộ của lớp ActionController :: Paramameter .

*

Nếu bạn không quen thuộc với ActionController :: StrongParameter, thì đây là lớp giúp tất cả chúng ta bảo mật thông tin hơn và được sử dụng để hạn chế những tham số nguồn vào. Nếu bạn đã sử dụng cú pháp này trước đây, bạn hoàn toà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 những 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ẻ như không nhiều, nhưng điều này lý giải tại sao những thông số kỹ thuật có sẵn trong bộ tinh chỉnh và điều khiển của chúng tôi. Kiểm tra bảng tinh chỉnh và điều khiển của bạn sẽ cho bạn biết nguyên 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ó!

Trong khi điều này lý giải huyền bí thông số kỹ thuật thông dụng, nó không lý giải làm thế nào để đạt được nó. Nếu bạn giống tôi, bạn muốn biết hàng loạt câu truyện. Ví dụ : request.parameters là gì ? Nó đến từ đâu ?

thông số đến từ đâu?

Sau khi tìm hiểu và khám phá thêm về Rails, tôi phát hiện ActionController :: Metal. Về cơ bản, ActionController :: Metal là phiên bản khung của ActionController :: Base .
Xem thêm : Bộ Giấy Cũi Baby Boy ☀ ️ Baby Boy’s Cradle
Nếu bạn xem mã nguồn của nó, bạn sẽ tìm thấy một số ít tài liệu tương quan đến nhu yếu cũng như một tập hợp những phương pháp tương quan đến tham số .

*

Tại thời gian này, tôi nên đề cập rằng, để khám phá sâu hơn về Rails, tôi đã gồm có 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ổng thể những phương pháp được gọi khi Rails nhận 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 đản, nhưng chỉ có một vài dòng mà tất cả chúng ta cần lo ngại về thông số kỹ thuật và ActionController :: Metal .

*

Các dòng có tương quan được ghi lại 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 thể hiện mới của lớp ActionDispatch::Request.

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 để Trường THPT Phan Đình Phùng 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: thptphandinhphung.edu.vn của Trường THPT Phan Đình Phùng

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 thptphandinhphung.edu.vn

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