2016-12-01 11 views
0

私は20以上のサブクラスを持つSTIモデルを持っており、それらをすべてルートの親コントローラに向ける必要があります。私はルートでそれぞれを定義していますが、これは実際には効率が悪く、DRYではありません。これは今見える方法です。シングルコントローラのDRYルートRails 4 STIモデル

resources :red_master_models, :controller => 'master_models' 
    resources :green_master_models, :controller => 'master_models' 
    resources :yellow_master_models, :controller => 'master_models' 
    resources :purple_master_models, :controller => 'master_models' 
    resources :orange_master_models, :controller => 'master_models' 
    resources :grey_master_models, :controller => 'master_models' 
    resources :indigo_master_models, :controller => 'master_models' 
    resources :blue_master_models, :controller => 'master_models' 

すべてのサブクラスをループしてより簡単に定義できるようになると思います。これは私が試したことです...しかし、それは動作しません。

MasterModel.subclasses.each do |master_model| 
    resources master_model.name.underscore.to_sym, :controller => 'master_models' 
    end 

答えて

0

方法は、単に空の配列を返すようにMasterModelためのサブクラスは、自動ロードされて、まだされていないので、それはおそらく動作しません。明示的にループの上にモデルを必要とし、何が起こるか見てみてください。

+0

私のモデルを必要とする構文は何ですか? – NothingToSeeHere

+0

明示的にモデルを要求する方法を検索しましたが、私は迷っています。あなたは洞察力を持っていますか? – NothingToSeeHere

+0

申し訳ありませんが、あなたの最初のコメントが表示されませんでした。理論をテストする目的のために、私はまずこれを行うでしょう: 'puts 'here' MasterModel.subclasses.each do | master_model | puts master_model.to_s リソースmaster_model.name.underscore.to_sym、:controller => 'master_models' end – Brad

関連する問題