Как я могу удалить дублирование маршрутов, вложенных в разные области? - PullRequest
2 голосов
/ 16 февраля 2012

У меня есть те же маршруты внутри ограничения пространства имен и поддоменов.

Первый используется в производстве, второй в разработке.Как можно удалить это дублирование?

constraints :subdomain => 'api' do
    scope :module => "api" do
      resources :users
      resources :orders
    end     
end

namespace :api do
    resources :users
    resources :orders
end    

1 Ответ

2 голосов
/ 16 февраля 2012

Ну, do ... end создает блок.Если у вас есть блок, который повторяется, вы можете вместо этого сохранить его в переменную, превратив его в Proc, передав ему Proc.new или proc (последний - просто сокращение для первого):

res = Proc.new do
  resources :users
  resources :orders
end

Затем вы можете передать Proc (res) в качестве аргумента блока любому методу, который ожидает блок, добавив к нему &:

constraints :subdomain => 'api' do
  scope :module => 'api', &res
end

namespace :api, &res

Вот отличная статья об использовании блоков, процедур и лямбд в Ruby.

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