2013-04-07 108 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