Tôi có url này:Xóa dấu "?" từ một chuỗi
http://localhost:3000/blog/posts?locale=en
Tôi có một helper để loại bỏ ?locale=en
của url:
def url_without_locale_params(url)
uri = URI url
params = Rack::Utils.parse_query uri.query
params.delete 'locale'
uri.query = params.to_param
uri.to_s
end
Với helper này tôi nhận được url này http://localhost:3000/blog/posts?
. Tôi muốn xóa dấu vết ?
.
Kết quả phải là http://localhost:3000/blog/posts
.
Phần URL sau khi dấu chấm hỏi được gọi là 'chuỗi truy vấn'. –
Câu trả lời đúng cho điều này là gán 'nil' cho' params' như Mike Campbell nói. –
Thật dễ hiểu tại sao bạn nên thử sử dụng thao tác chuỗi để xoa bóp URL được trả về, nhưng khi sử dụng một lớp được thiết kế để quản lý nội dung đó, thật sự tốt để tận dụng các tính năng của nó. URI không phải là công cụ URI tốt nhất/đầy đủ tính năng nhất cho Ruby. Nhìn vào [Addressable :: URI] (https://github.com/sporkmonger/addressable) nếu bạn muốn một cái gì đó toàn diện hơn. –