Mặc dù nguyên tắc chung của chúng tôi là nguyên tắc thiết kế, chúng tôi cần có trình điều khiển thực hiện yêu cầu GET là một phần của luồng công việc liên quan đến một loạt chuyển hướng cho một dịch vụ bên ngoài). Có ai biết cách dự định để làm điều này không? Tôi không thực sự muốn bước ra ngoài khuôn khổ định tuyến tài nguyên được cung cấp bởi các tuyến Rails. Chúng tôi không cần hành động #index
thường phản hồi yêu cầu GET đó.Các tuyến đường có tài nguyên, nhưng với #create action bằng GET thay vì POST
tôi thấy (ngạc nhiên) mà làm việc này, nhưng tôi không biết nếu nó được dự định, hoặc nếu chúng tôi muốn được khai thác một lỗi trong Rails và rủi ro vỡ sau đó xuống dòng:
resources :agreements, :except => [:index, :create] do
get :create, :on => :collection
end
Nếu rằng get :create
là get :something
, chúng tôi đã có một con đường như
Helper: something_agreement_path
Request: GET /agreements/:agreement_id/something
Action: agreements#something
Nhưng Rails thực sự tạo ra những gì chúng ta muốn:
Helper: agreements_path
Request: GET /agreements
Action: agreements#create
Lỗi hoặc tính năng?
Cảm ơn, tôi sẽ đọc qua điều này. Tôi đoán nó đã được xuống đến * thực hiện *, đó là những gì lo lắng cho tôi ... nếu nó không phải là * hành vi dự định *, sau đó điều này sẽ phá vỡ tại một số điểm. Có lẽ tôi chỉ nên xác định một hành động khác với '# create'; Tôi bây giờ chỉ tò mò nếu có một cách tiếp cận dự định để thay đổi động từ HTTP được sử dụng cho mỗi hành động :) Chúng ta có thể thay đổi đường dẫn, nhưng dường như không phải động từ. – d11wtq