2017-03-17 19 views
0

私はこのように設定するAPIがあります。ブドウ:動的プレフィックス?

class Dashboard < Api 
    def self.inherited(subclass) 
    super 
    subclass.instance_eval do 
     prefix 'dashboard' 
     #... 
    end 
    end 

    def self.company_id(path) 
    ':company_id' + path 
    end 

    helpers do 
    def current_company 
     @current_company ||= Company.find(params[:company_id]) if params[:company_id] 
    end 
    end 
end 

問題:私はDashboardからクラスEmployeeを継承し、私が達成したいもの:Dashboardから継承したリソース、それによってアクセスされるべきは、名前空間'/dashboard/companies/:company_id/employees'だ、current_companyで正しく動作します。

私が代わりにnamespace利便性の完全な経路を提供するたびに疲れを感じる:あなたが探している、私はundertand何から

namespace :companies do 
    namespace :employees do 
    ... 
    end 
end 

答えて

0

get 'companies/:company_id/employees' 
#... 
end 

しかし、これは結果必要を与えることはありませんが動的な名前空間のために、そうではありませんか?動的な名前空間は、単なる記号ではなく文字列を使用して定義できます。指定された文字列では、各:somethingの部分は、RailsまたはSinatraルート構文で使用されているものと同じものをパラメータとして示します。エンドポイントでは通常通りにparams[:something]にアクセスできます。

例えば、あなたのケースでは、あなたはこのようなものを使用することがあります:

namespace 'companies/:company_id' do 
    namespace :employees do 
    get do 
     # Will respond with the available params (containing :company_id) 
     body params 
    end 
    end 
end 
関連する問題