0

私の場合、リソースのインスタンスを取得し、そのモデル クラスが単数または複数のリソースを表しているかどうかを確認する必要があります。

Rails.application.routes とそのインスタンス変数を掘り下げましたが、この問題を解決する可能性は見つかりませんでした。

アップデート:

モデルとコントローラーにいくつかのモジュールを含む宝石の匿名モデル インスタンスで polymorphic_path ヘルパーを使用しています。最終的な目標は、REST コントローラーとモデルにいくつかの自動化を提供し、現在のモデル/インスタンスとその祖先のパス/ルートを提供することです。

私の最近の試みは次のようになりました:

Rails.application.routes.instance_variable_get(:@router).instance_variable_get(:@routes).instance_variable_get(:@named_routes).delete_if{|k,v| !k.match(/my_model_name_as_downcased_string_here/)}.values.map{|v| v.instance_variable_get(:@defaults)}.map{|h| h[:action]}

複数モデルの場合は action :index 、単数モデルの場合は :show が表示されることを期待しています。モデルが特異なモデルであるかどうかを調べるためにイントロスペクションを利用する方法があるに違いありません。

4

1 に答える 1