2011-07-24 28 views
12

Phiên bản nào của authlogic là những người sử dụng với Rails 3.1.Rails Authlogic 3.1

tôi có các mục sau đây trong gemfile tôi:

gem 'authlogic', :git => 'https://github.com/AndreasWurm/authlogic.git' 

Tôi có vấn đề là với một đoạn mã trong ApplicationController cơ sở của tôi.

def require_no_user 
    if current_user 
    store_location 
    flash[:notice] = "You must be logged out to access this page" 
    redirect_to :controller => "home", :action => "index" 
    return false 
    end 
end 

def store_location 
    session[:return_to] = request.request_uri 
end 

Các lỗi tôi nhận được là với dòng:

session[:return_to] = request.request_uri 

Tôi nhận được một lỗi nói:

undefined method `request_uri' for #<ActionDispatch::Request:0x7dadd4d8> 

đã REQUEST_URI được gỡ bỏ từ ActionDispatch và nếu như vậy, là những gì thay thế chính xác?

Trả lời

7

fullpath sẽ cung cấp cho bạn URL (nhưng không có giao thức, cổng, tên miền) với params và request.url sẽ cung cấp cho bạn tất cả những gì fullpath bỏ qua

30

Giải pháp tốt nhất là như đã nói Vadim, sử dụng các phương pháp mới trong ActionDispatch :: Yêu cầu:

Bạn chỉ cần thay thế:

def store_location 
    session[:return_to] = request.request_uri 
end 

bởi:

def store_location 
    session[:return_to] = request.url 
end 

và hoàn tất!

+0

Điều này hoạt động tuyệt vời! Làm tốt lắm Kzu. – Nizzy