2011-11-09 30 views
23

Tôi đang sử dụng Rails 3.0.9, Ruby 1.9.2, Devise 1.3.4 và có nhu cầu trong phiên Devise new view để truy cập tham số url yêu cầu mặc dù tôi thấy điều này như một yêu cầu Rails chung xử lý câu hỏi. Về cơ bản, một yêu cầu được thực hiện cho một tài nguyên được xác thực Devise chuyển hướng người dùng đến màn hình đăng nhập. Trong giao diện đăng nhập, tôi cần truy cập vào địa chỉ yêu cầu, ví dụ, đây là địa chỉ yêu cầu gọi vào đầuRails 3 nhận yêu cầu referrer

http://mysite.com/article/5?type=blah 

Trong trang chuyển hướng đăng nhập, tôi cần truy cập vào URL đó, bất cứ ai biết làm thế nào tôi có thể làm điều này?

Trả lời

42

Bạn có thể sử dụng request.referer hoặc request.env['HTTP_REFERER'] trong bộ điều khiển của mình để nhận url giới thiệu.

+0

Đã thử rằng, không hoạt động, nó hiển thị url màn hình đăng nhập. Bằng cách đó, tôi có nghĩa là trong bộ điều khiển phiên. Nếu tôi đặt mã trong bộ điều khiển 'bài viết', nó sẽ không được thực hiện cho đến sau khi đăng nhập được xác thực. –

+0

Nếu tôi hiểu đúng yêu cầu của bạn, bạn muốn chuyển hướng người dùng đến trang, nơi anh ta đã ở trước hành động đăng nhập. Tại sao bạn không chỉ lưu url chuyển hướng trong phiên, khi người dùng nhấp vào đăng nhập? – topek

+0

Việc chuyển hướng đến trang đăng nhập đã được xử lý đúng cách, những gì tôi cần là trên trang đăng nhập yêu cầu người dùng, tôi cần quyền truy cập vào url yêu cầu ban đầu, hy vọng có ý nghĩa hơn. Tôi nên làm rõ rằng cuộc gọi ban đầu đến từ một máy chủ khác, không phải là trình duyệt. –

3

Tôi vừa phát hiện ra rằng WEBrick xử lý request.referrer không chính xác. Nhưng đừng lo lắng. Unicorn xử lý nó đúng. Tôi không thử nghiệm trên các máy chủ khác. Bạn nên kiểm tra điều này với bạn. Tôi không nghĩ rằng bạn sử dụng WEBrick như một máy chủ sản xuất.

+0

Thật vậy WEBrick không thích hợp cho một máy chủ sản xuất. Tôi cũng tìm thấy sự khác biệt trong cách WEBrick và Puma xử lý 'request.referrer' - chắc chắn đáng để kiểm tra nếu' request.referrer' không hoạt động như mong đợi khi sử dụng WEBrick. – zelanix

Các vấn đề liên quan