2015-11-12 37 views
1

我試圖查詢數據,所有的項目一個用戶已經從特定類別喜歡。 EG:/users/1/categories/5沒有路由匹配[GET]「/用戶/ 1 /分類/ 5」

我有一點Rails-101問題,無法找出服務器爲什麼告訴我路由不存在。

該參數是正確的。路由存在於Routes.rb中。我能想到的唯一事情就是路線出現的順序。或者可能是由於路由的SPA性質。

的routes.rb:

Rails.application.routes.draw do 


    ACCEPTS_JSON = lambda {|request| 
    request.accepts.include?(:json) 
    } 

    get "https://stackoverflow.com/users/email" => "users#id" 
    get "/items/:id/like" => "items#checkhasliked" 
    get "https://stackoverflow.com/users/:u_id/categories/:c_id " => "users#categoryitems" // should do the trick? 

    scope constraints: ACCEPTS_JSON do 
    resources :users 
    resources :categories 
    resources :items 
    end 

    get "/*path" => "app#main" 

    post "/users" => "users#create" 
    post "/items" => "items#create" 

    post "/items/:id/like" => "items#like" 

    post "/items/:id/unlike" => "items#unlike" 

    post "/sessions" => "sessions#create" 

    root 'app#main' 
end 

UsersController:

class UsersController < ApplicationController 

     ... 

     def categoryitems 
      render json: {head: :ok} 
     end 
    end 

AJAX調用:

fetchCategoryItems: function(cID){ 
    var uID = this.props.params.id // user ID 
    var cID = cID // category ID 

    $.ajax({ 
     type: "GET", 
     url: "https://stackoverflow.com/users/" + uID + "/categories/" + cID, 
     dataType: 'json', 
     success: function(data){ 
      this.setState({didFetchData: 'true', items: data.items}) 
     }.bind(this), 
     error: function(data){ 
      alert("error! couldn't fetch user's items-by-category") 
     } 
    }) 
} 

回答

1

我反而在你的路由使用此文件

resources :users, only: [:show] do 
    resources :categories, only: [:show], to: 'users#categoryitems' 
    end 
相關問題