Как я могу создать пользовательские помощники маршрутов для использования в routes.rb

У меня есть несколько повторяющихся шаблонов в моем routes.rb, и я хотел бы сделать его СУХИМ, создав метод, который создает эти маршруты для меня.

Пример того, что я хочу достичь, можно увидеть в геме Devise, где вы можете использовать следующий синтаксис:

#routes.rb
devise_for :users

Который будет генерировать все маршруты, необходимые для Devise. Хотелось бы создать нечто подобное. Скажем, например, что у меня есть следующие маршруты:

resources :posts do
  member do
    get 'new_file'
    post 'add_file'
  end
  match 'files/:id' => 'posts#destroy_file', :via => :delete, :as => :destroy_file
end

resources :articles do
  member do
    get 'new_file'
    post 'add_file'
  end
  match 'files/:id' => 'articles#destroy_file', :via => :delete, :as => :destroy_file
end

Это довольно быстро начинает запутываться, поэтому я хотел бы найти способ сделать это следующим образом:

resources_with_files :posts
resources_with_files :articles

Итак, мой вопрос: как я могу создать метод resources_with_files?

15
задан DanneManne 16 June 2011 в 03:31
поделиться