Маршрутизация с полиморфными ресурсами в Rails 3 - PullRequest
3 голосов
/ 05 апреля 2011

У меня есть класс полиморфных скриптов, например:

Script
  belongs_to :scriptable, :polymorphic => true
  ...
end

project и testCase - те, которые содержат этот класс. Скрипт также имеет скрепку и является версионным, поэтому в основном у меня уже есть маршрут для скрипта:

resources :test_cases do
  resources :script do
    resources :script_versions
  end
end

Этот маршрут существовал и раньше, но новой функцией нашего приложения является также возможность создания сценариев проекта. Означает ли это, что я должен добавить один и тот же маршрут к проектам, например так:

resources :projects do
  resources :script do
    resources :script_versions
  end
end

Что произойдет, если в будущем у нас появятся другие классы для сценариев? Нужно ли создавать такие маршруты каждый раз? Это выглядит так чисто, но мне не кажется СУХИМ. Полиморфизм должен помочь мне здесь, не так ли? Существует ли полиморфный способ объявления маршрутов?

Ответы [ 2 ]

1 голос
/ 18 января 2012

Вы можете передать несколько имен resources следующим образом

resources :test_cases, :projects do
  resources :script do
    resources :script_versions
  end
end
0 голосов
/ 18 января 2012

Вы могли бы сделать это:

[:test_cases, :projects].each do |resource|
    resources resource do
        resources :script do
            resources :script_versions
        end
    end
end

Может быть, не супер элегантный, но, по крайней мере, это СУХОЙ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...