Рефакторинг маршрутов - обслуживание разных макетов - PullRequest
1 голос
/ 01 февраля 2010

Как Rails NOOB, я начал с route.rb:

ActionController::Routing::Routes.draw do |map|
  map.resources :events
  map.connect 'affiliates/list', :controller => "affiliates", :action => "list"  
  map.connect 'affiliates/regenerate_thumb/:id', :controller => "affiliates", :action => "regenerate_thumb"
  map.connect 'affiliates/state/:id.:format', :controller => "affiliates", :action => "find_by_state"
  map.connect 'affiliates/getfeed', :controller => "affiliates", :action => "feed"
  map.resources :affiliates, :has_many => :events 

  map.connect ":controller/:action"
  map.connect '', :controller => "affiliates" 
  map.connect ":controller/:action/:id"
  map.connect ":controller/:action/:id/:format"
end

и я пытаюсь это подтянуть. и я дошел до:

ActionController::Routing::Routes.draw do |map|
  map.resources :events, :only => "index" 
  map.resources :affiliates do |affiliates|
    affiliates.resources :has_many => :events
    affiliates.resources :collection =>  { :list => :get, :regenerate_thumb => "regenerate_thumb"   }
  end
  # map.connect 'affiliates/regenerate_thumb/:id', :controller => "affiliates", :action => "regenerate_thumb"
  map.connect 'affiliates/state/:id.:format', :controller => "affiliates", :action => "find_by_state"
  map.connect 'affiliates/getfeed', :controller => "affiliates", :action => "feed"
  map.root :affiliates

end

что меня смущает, так это маршруты по сравнению с параметрами. Например, я понял, что единственная разница между списком и индексом заключается в том, КАК он отображается, а не КАК отображается.

Иметь другое действие (как я делаю сейчас) кажется неправильным, но я не могу понять, как он поступил правильно.

Спасибо

Ответы [ 2 ]

0 голосов
/ 17 апреля 2010

В заголовке написано "обслуживание разных макетов". Где проблема?

0 голосов
/ 01 февраля 2010

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

map.resources :events, :only => "index"
map.resources :affiliates, :has_many => :events, :collection => { :list => :get  }, :member => { :regenerate_thumb => :get } 
map.connect 'affiliates/state/:id.:format', :controller => "affiliates", :action => "find_by_state"
map.connect 'affiliates/getfeed', :controller => "affiliates", :action => "feed"
map.root :affiliates
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...