いくつかの可能性がありますが、最も重要なのは、アプリケーションを RESTful なクリーン モデルに保つことです (多くの時間を節約できます)。
まず、モデルを適切に定義する必要があります。
- あれは別のモデルだと思いますか?
- モデルは「ディレクトリ」の下にあると思いますか?
- モデルはオブジェクト型の関数だと思いますか?
- モデルは object 型のグローバル関数だと思いますか?
タイプのネストされたリソースとしてのモデル
この場合、型のインスタンスには複数のモデルのインスタンスがあると考えます (会社がユーザーを持つことができるように)。したがって、モデル用とタイプ用の 2 つの安静なコントローラーが必要です。
このようなルートを次のように定義できます。
resources :types do
resources :models
end
モデル コントローラーの RESTful メソッドは、type_id が 14、id が 1 の/types/14/model/1に移動すると呼び出されます。
あなたの質問に関しては、それが最もクリーンな方法だと思います。
タイプ名前空間のモデル
この場合、モデル メソッドはタイプの名前空間に含まれますが、コントローラーはモデル オブジェクトのみを処理するためのものです。
namespace :types do
resources :models
end
/types/models/1を呼び出して、モデル コントローラーの show 関数を呼び出すことができます。
型インスタンスのメソッドとしてのモデル メソッド
この場合、モデル メソッドはインスタンス型の関数です。
resources :types do
member do
:model
end
end
id = 42 で/types/42/modelをリクエストすると、型コントローラーのメソッド関数が呼び出されます。
型のグローバル メソッドとしてのモデル メソッド
この場合、モデル メソッドはグローバル型クラスのグローバル メソッドです。
resources :types do
collection do
:model
end
end
この場合、/types/modelが要求されたときに、タイプ コントローラーのモデル メソッドが呼び出されます。
すべてがここで説明されています。