2012-08-24 24 views
5

Câu hỏi đơn giản - làm cách nào để nhận đường dẫn hoặc URL đầy đủ của hành động hiện tại BAO GỒM chuỗi truy vấn?Nhận đường dẫn/url của hành động hiện tại bao gồm chuỗi truy vấn? (Rails)

Tôi muốn lưu nó vào biến session như vậy:

def show 
    @thingy = Thingy.find(params[:id]) 

    session[:some_var] = current_url 

    ... 
end 

Hiện nay tôi đang làm những điều sau đây, nhưng nó có vẻ hơi nặng tay (đặc biệt là nêu rõ các chuỗi truy vấn params riêng):

def show 
    @thingy = Thingy.find(params[:id]) 

    session[:some_var] = thingy_path(@thingy, :q1 => params[:q1], :q2 => params[:q2]) 

    ... 
end 

Trả lời

12

request.url có lẽ là những gì bạn đang tìm kiếm.

+5

'request.fullpath' cũng sẽ cung cấp cho bạn chuỗi truy vấn + đường dẫn tương đối, không có giao thức hoặc miền. – gmcnaughton

1

truy cập params biến, nó sẽ cung cấp cho bạn truy vấn cũng như controlleraction. Bằng cách sử dụng đối tượng request, bạn có thể đào sâu hơn nếu muốn.