2010-10-26 31 views
5

Tôi khá mới đối với Rails và đang viết một mẫu đăng nhập. Tôi đã sử dụng form_tag để chuyển qua trình gửi của người dùng tới bộ điều khiển tài khoản. Bây giờ, tôi không muốn người dùng có thể nhập chi tiết đăng nhập của họ thông qua yêu cầu GET, vì vậy làm cách nào tôi có thể kiểm tra xem một tham số nhất định có phải là tham số GET hoặc POST không?Các tham số đường ray từ GET/POST

Cảm ơn trước

+0

Cũng thấy câu trả lời cho câu hỏi này: [http://stackoverflow.com/questions/152585/identify-get-and-post-parameters-in-ruby-on-rails][1] [ 1]: http://stackoverflow.com/questions/152585/identify-get-and-post-parameters-in-ruby-on-rails –

Trả lời

16

Trong Rails bạn không có thông số POST hoặc GET cụ thể. Bạn có yêu cầu POST hoặc GET. Bạn có thể kiểm tra xem nó như thế này trong điều khiển của bạn:

request.post? 

hoặc bạn có thể kiểm tra các động từ HTTP khác: GET, PUT và DELETE:

request.get? 
request.put? 
request.delete? 

Mọi chi tiết, kiểm tra mảnh này của tài liệu: http://railsapi.com/doc/rails-v2.3.8/classes/ActionController/Request.html

+3

Trong các tham số Rails luôn có thể truy cập thông qua 'params [: name]' cho dù chúng đã được POST hoặc GET. – Ariejan

+0

ok Tôi cho rằng điều đó sẽ phải làm, cảm ơn thông tin – alex

+0

Liên kết bị hỏng, tài liệu chính thức đã được chuyển đến đây http://api.rubyonrails.org/classes/ActionDispatch/Request.html –

0

Tất nhiên, bạn có thể BÀI ĐĂNG đến một url bao gồm thông số truy vấn, vì vậy câu trả lời đã chọn có thể không phải là những gì bạn đang tìm kiếm. Hãy thử kiểm tra nếu tham số tồn tại trong mảng yêu cầu:

if request.GET.include? "param_name" 
    # do something 
end 

Ngoài ra còn có request.POST và có bí danh (query_parameters cho GETrequest_parameters cho POST) cho cả hai trong ActionDispatch::Request:

http://api.rubyonrails.org/classes/ActionDispatch/Request.html#method-i-GET

2

Nếu những gì bạn cần biết về động từ HTTP mà bạn có thể yêu cầu trực tiếp để yêu cầu:

request.request_method 
Các vấn đề liên quan