我正在开发一个基于rails的REST api.要使用此api,您必须登录.关于这一点,我想在我的用户控制器中创建一个方法me
,它将返回登录用户信息的json.
所以我try 了这个:
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,但我希望得到类似Deviate的东西.基于current_user
id的东西.示例如下:
edit_user_password GET /users/password/edit(.:format) devise/passwords#edit
在本例中,您可以编辑当前用户密码,而无需将id作为参数传递.
我可以用一个集合而不是一个成员,但这是一个肮脏的旁路...
有人有主意吗?