2013-08-14 2 views
0

Я имел маршруты, как этотСтатические маршруты больше не работает, передавая идентификатор

/государственный/Аризона/блок/AZ22

Я хотел, чтобы удалить имена контроллера государства и БЛОКА и получить маршруты, как этот

/аризоны/AZ22

Найдено этот код, который работал большой

resources :states, :except => [:index ], :path => '/' do 
    resources :units, :except => [:index ], :path => '/' 
    end 

B ut теперь мои статические пути не работают, потому что он думает, что это состояние. У меня есть список государств на статических страницах.

Error: Couldn't find State with id=about 

Code throwing error : def set_state 
     @state = State.friendly.find(params[:id]) 
     end 

Это мои статические маршруты страницы

match '/contact', to: 'static_pages#contact', via: 'get' 
    match '/about', to: 'static_pages#about', via: 'get' 
    root 'static_pages#home' 

Есть ли способ исправить маршруты? Или я неправильно использовал статические страницы, потому что я кормлю им список состояний?

ответ

0

Маршруты сопоставляются в том порядке, в котором они указаны. Итак, организуйте свои маршруты следующим образом и дайте ему попробовать:

root 'static_pages#home' 
match '/contact', to: 'static_pages#contact', via: 'get' 
match '/about', to: 'static_pages#about', via: 'get' 

resources :states, :except => [:index ], :path => '/' do 
    resources :units, :except => [:index ], :path => '/' 
end 
+0

Nice. Я знал, что они имеют значение, но почему-то считали, что ресурсы всегда должны были на вершине. Теперь это имеет смысл. – Longcreative

+0

@ Longcreative, но будьте осторожны с этим в этом (очень маловероятно, но ...) никогда не будет состояния с именем 'contact' или' about'. – vee

Смежные вопросы