2016-09-27 10 views
0

(ルビー2.3.1、Railsの5.0.0.1)RailsのAPI:ヘルパー名にバージョン

私はすでにURIにおけるAPIのバージョンを実装し、このようなトークン認証を考案追加しました:

constraints subdomain: 'api' do 
    scope module: 'api' do 
     namespace :v1 do 
      # V1 stuff 
      resources :users 
      mount_devise_token_auth_for 'User', at: 'auth' 
     end 
    end 
end 

「レーキルート」の結果(例えば、行)従ってがある:

v1_user GET /v1/users/:id(.:format) api/v1/users#show {:subdomain=>"api"} 

今私のコントローラにおいて、ユーザに関連する任意のヘルパーは、「V1」バージョンを含んでいます。例:

before_action :authenticate_v1_user! 

これは初めてのことですが、これは避けてください。私がv2にアップグレードする場合、すべてのヘルパーを通過して、壊れないように変更する必要がありますか?または、アップグレードプロセスはどのように見えますか?

ご意見ありがとうございます。これは非常に簡単な質問かもしれませんが、私は少し混乱しています。

+0

私はバージョン管理の使用を避けたいですあなたが少なくとも2つの異なったバージョンを持っているまであなたは... 'authenticate_user! 'と呼んでください。あなたは2つの異なる認証方法があるまで、' authenticate_v1_user'と 'authenticate_v2_user'を区別することができます。 dは代わりに 'roles'を使っていろいろなやり方で処理します(まだルートにv1などを置いてください)。 –

答えて

0

さて、私は(それは私の好みのために余りに「ハック」ビットを感じているにもかかわらず)ビットを探し維持し、機能するソリューションを、見つけた:

namespace :v1, as: '' do 
    # V1 stuff 
    resources :users 
    mount_devise_token_auth_for 'User', at: 'auth' 
end 

のでas: ''は、トリックを行います。 (から取られた回答:Adding prefix to a named route helper under namespace

私が今までに戻って私のヘルパー名に「V1」をしたいと思うならば、私は手動で例えばとルートごとにそれらを追加することができます推測:as: 'new_v1_user_sesssion'

関連する問題