2013-04-07 123 views
1

我在Rails路由中指定了以下內容。我想在這個路由上同時允許GETPOST,但無論我嘗試什麼,它只允許#index操作,並且在請求POST時不訪問#create操作。Rails API路由問題

match ':user_id/special_deals', to: 'special_deals#index' 

我已經試過這太:

match ':user_id/special_deals', to: 'special_deals#index', :via => [:get, :post] 

我需要的用戶ID,因爲人們能夠訪問API可以訪問多個用戶的信息首先被指定。

回答

1

它的工作方式與您要求的完全相同。如果你想POST排到create這裏的行動是你的路線CONFIGS:

match ':user_id/special_deals', to: 'special_deals#index', :via => [:get] 
match ':user_id/special_deals', to: 'special_deals#create', :via => [:post] 

有寫這些的更簡單的方法,但我只是想用你寫的格式相同。請檢查this guide瞭解它們。

如果你已經有了一個User控制器,你可以寫更多的結構化路線,如:

resources :users do 
    resources :special_deals, :only => [:index, :create] 
end 

這將使航線像(#shows它將被送到)special_deals:

GET /users/:user_id/special_deals #special_deals#index 
POST /users/:user_id/special_deals #special_deals#create 
+0

完美!謝謝HungryCode。 – ac360 2013-04-07 06:42:44

+0

不客氣。 – HungryCoder 2013-04-07 06:46:01