Chúng tôi đã có trường hợp tương tự khi chúng ta loại bỏ một số phần của một con đường api. Về cơ bản chúng tôi đã đi /api/app/v1/*
-/api/v1/*
Chúng tôi đặt điều này trong các tuyến của chúng tôi
match '/api/app/v1/*path', to: redirect(path: '/api/v1/%{path}'), via: :all
Đây là tất cả tốt, ngoại trừ đối với một số tuyến đường kết thúc bằng con đường params bao gồm dấu chấm. Ví dụ. /api/v1/foo/00.00.100
trong đó .100
được phân tích cú pháp thành format
và thông số còn lại chỉ có giá trị 00.00
Chúng tôi đã bảo vệ điều này với một số ràng buộc về thông số.
put '/api/app/v1/foo/:version',
constraints: { version: /([0-9]+)\.([0-9]+)\.([0-9]+)/ },
to: redirect('/api/v1/foo/%{version}')
Edit: chúng tôi sử dụng đường ray 5
giải pháp Cuối cùng Rails3 làm việc! Cảm ơn. – lzap