Tôi có tuyến đường này:Không phù hợp với lộ trình trong bộ điều khiển spec cho tuyến đường phức tạp của tôi
resources :items, path: 'feed', only: [:index], defaults: { variant: :feed }
đó được lồng trong api và v1 namespace. (tham số request_source đến từ không gian tên Api).
Tôi muốn kiểm tra hành động chỉ mục trong thông số bộ điều khiển của mình. Tôi cố gắng:
get :feed, community_id: community.id, :request_source=>"api"
không làm việc, và vì vậy không:
get :index, community_id: community.id, :request_source=>"api", variant: 'feed'
nói:
ActionController::RoutingError:
No route matches {:community_id=>"14", :request_source=>"api", :variant=>"feed", :controller=>"api/v1/items"}
------- EDIT -------- -
Lý do tại sao tôi muốn sử dụng biến thể để gửi thông số cho bộ điều khiển là vì tôi có tất cả các tuyến đường sau:
resources :items, path: 'feed', only: [:index], defaults: { variant: 'feed' }
resources :items, path: 'popular', only: [:index], defaults: { variant: 'popular' }
Sau đó, trong ItemsController, tôi có một trước khi lọc "get_items" cho Mà action index không:
def get_items
if params[:variant] == 'feed'
....
elsif params[:variant] == 'popular'
....
end
các vết lùi về ngoại lệ là gì? –