Rails 3 - Вложенные ресурсы и участники / Коллекции - PullRequest
0 голосов
/ 09 сентября 2011

Есть ли способ избежать необходимости делать это ...

resources :parents do
  resources :children do
    collection do
      get "/search/:term/:offset/:limit.:format", :action => "search", :constraints => { :term => /\w+/, :offset => /\d+/, :limit => /\d+/ }
    end
  end
end

resources :children do
  collection do
    get "/search/:term/:offset/:limit.:format", :action => "search", :constraints => { :term => /\w+/, :offset => /\d+/, :limit => /\d+/ }
  end
end

Я думал, что можно было бы просто сделать это ...

resources :parents do
  resources :children do
end

resources :children do
  collection do
    get "/search/:term/:offset/:limit.:format", :action => "search", :constraints => { :term => /\w+/, :offset => /\d+/, :limit => /\d+/ }
  end
end

Причина в том,я хочу использовать оба этих маршрута ...

/children/search/term/0/10
/parents/1/children/search/term/0/10

1 Ответ

2 голосов
/ 15 сентября 2011

Это, кажется, делает трюк

def define_children 
  resources :children do
    collection do
      get :search
    end
  end
end

define_children
resources :parents do
  define_children
end

:parent_id будет установлен в params, если использовался маршрут через parent.Иначе его не будет.Я опустил ограничения для ясности.Также вы, вероятно, должны сделать .format необязательным.

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