0

私のルートファイルに懸念事項を使用する方法を理解しようとしています。Rails 4 - 懸念事項を使用したルーティング

私はUser、Project、Eoiというモデルを持っています。

団体は以下のとおりです。

ユーザー

belongs_to :user 
belongs_to :project 

私が提出されているEOISを表示するシステムを作るしようとしています

has_many :eois 

プロジェクト

has_many :eois 

EOIにプロジェクトを作成したユーザーだけが表示できるようにします。

これとは別に、すべてのユーザーに自分が作成したすべてのエイジングを表示する必要があります(どのプロジェクトに関係なく)。

私は最初のシナリオでネストされたルートが必要だと思うし、2番目のシナリオでネストされていないルートも欲しいと思います。私が持っている私のroutes.rbを

resources :projects do 
    # concerns: :eois, 
    member do 
    resources :eois 
    end 

私も持っていたい:

resources :eois 

は、どのように私はこの作業を行うことができますか?私はこの例のハングを得ることができませんhttp://api.rubyonrails.org/classes/ActionDispatch/Routing/Mapper/Concerns.html

私はこの例で賞賛に値するかどうかは、モデルであるか、ルートの2つの場所にルートを持つことができるように書く必要がある.rbファイル。

私の次の試みは、私は私はこの作業を取得するために、どこかの定義を行う必要があるかどうかわからないんだけど

resources :eois#, only: [:index] 
    concern :eoiable do 
    resources :eois 
    end 

resources :projects do 
    concerns :eoiable 
    end 

を持って上記のリンクに例の要旨をコピーしようとすることです。

答えて

0

経路の不安は、経路をDRYする場合にのみ必要です。これまでのところ、ルートの重複は1つしかありません(eoi)...懸念を使うことはここでは過剰です。

あなたが実際にやりたかったのは、2 eoiコントローラを持つことです。プロジェクト内にあるものに対して2番目のコントローラしか提供しません。読みやすくするために

私はそれらを名前空間だろう - 1 eois_controller.rbprojects内部のフォルダを入れて、Projects::EoisControllerとしてそれを名付け、二1 - EoisControllerという名前のトップレベルのコントローラとして。経路は次のようになります。

resources :eois # will map to EoisController 
resources :projects do 
    scope module: :projects do 
    resouces :eois # will map to Projects::EoisController 
    end 
end 

もちろん、これらの2つのコントローラを後でDRYすることもできます。

関連する問題