मैं रेलों के आधार पर एक आरईएसटी एपीआई विकसित कर रहा हूं। इस एपीआई का उपयोग करने के लिए, आपको लॉग इन होना चाहिए। इसके बारे में, मैं अपने उपयोगकर्ता नियंत्रक में एक विधि me
बनाना चाहता हूं जो लॉग इन उपयोगकर्ता इंफोस के एक जेसन को वापस कर देगा। तो, मुझे URL में पारित होने के लिए :id
की आवश्यकता नहीं है। मैं सिर्फ कॉल करने के लिए http://domain.com/api/users/meरेल मार्ग: बिना पैरा के प्राप्त करें: आईडी
तो मैं इस कोशिश की हैं:
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
आप देख सकते हैं, मेरा मार्ग एक आईडी के लिए इंतजार कर रहा है, लेकिन मैं वसीयत की तरह है कुछ प्राप्त करना चाहते हैं। कुछ current_user
आईडी पर आधारित है। उदाहरण नीचे:
edit_user_password GET /users/password/edit(.:format) devise/passwords#edit
इस उदाहरण में आप एक परम के रूप में आईडी गुजर बिना वर्तमान उपयोगकर्ता पासवर्ड को संपादित कर सकते हैं।
मैं एक सदस्य के बजाय एक संग्रह इस्तेमाल कर सकते हैं, लेकिन यह एक गंदा बाईपास है ...
किसी को भी एक विचार है? आप
शानदार अरजन। वास्तव में मुझे क्या चाहिए ... सिवाय इसके कि मेरे पास पथ नहीं होगा लेकिन मैं इसके बिना कर सकता हूं। चीयर्स। – Gozup
कोई समस्या नहीं है, आप ': as =>' me'' जोड़कर पथ जोड़ सकते हैं। यह 'me_path' और' me_url' जोड़ देगा। – Arjan
ग्रेट। उसे नहीं पता था। धन्यवाद – Gozup