我正在開發基於Rails的REST api。要使用這個api,你必須登錄。對此,我想在我的用戶控制器中創建一個方法me
,它將返回登錄用戶信息的json。 因此,我不需要在URL中傳遞:id
。我只是想打電話給http://domain.com/api/users/meRails路由:GET不帶參數:id
所以,我想這一點:
namespace :api, defaults: { format: 'json' } do
scope module: :v1, constraints: ApiConstraints.new(version: 1, default: true) do
resources :tokens, :only => [:create, :destroy]
resources :users, :only => [:index, :update] do
# I tried this
match 'me', :via => :get
# => api_user_me GET /api/users/:user_id/me(.:format) api/v1/users#me {:format=>"json"}
# Then I tried this
member do
get 'me'
end
# => me_api_user GET /api/users/:id/me(.:format) api/v1/users#me {:format=>"json"}
end
end
end
正如你可以看到,我的路線等待一個id,但我想獲得類似色器件了。基於current_user
id的東西。下面的例子:
edit_user_password GET /users/password/edit(.:format) devise/passwords#edit
在這個例子中,你可以不通過ID作爲PARAM編輯當前用戶的密碼。
我可以使用一個集合,而不是一個成員的,但是這是一個骯髒的旁路...
任何人有一個想法? 謝謝
輝煌的阿爾詹。確切地說,我需要......除了我不會有道路,但我可以沒有它。乾杯。 – Gozup
沒問題,你可以通過添加':as =>'me''來添加路徑。這將添加'me_path'和'me_url'。 – Arjan
太好了。不知道。謝謝 – Gozup