2012-05-03 7 views
1

Я только что установил Devise, и теперь я хочу улучшить стиль для Devise. Я добавил в application.html.rb ссылку для редактирования профиля пользователя Devise, но когда я перехожу на эту страницу, а затем возвращаюсь, например, на страницу индекса, у меня нет ошибок совпадений маршрутов.Разработка маршрутов на Ruby on Rails 3.2.1

HTML генерирует эту ссылку для дома/индекс: http://localhost:3000/assets?controller=devise%2Fhome

, но на самом деле должны быть: http://localhost:3000/home/index

Там идет что-то неправильно после посещения страниц пользователей DEViSE.

Моя навигация:

<ul> 
    <li> 
    <h2>Izvēlne</h2> 
    <ul> 
     <li><a class="menu"><%= link_to "Jaunumi" ,:controller=>"home", :action => "index" %></a></li> 
     <li><a class="menu"><%= link_to "Par skolu" ,:controller=>"home", :action => "par_skolu" %></a></li> 
     <li><a class="menu"><%= link_to "Galerijas" ,:controller=>"home", :action => "galerijas" %></a></li> 
     <li><a class="menu"><%= link_to "Skolotāji" ,:controller=>"home", :action => "personals" %></a></li> 
     <li><a class="menu"><%= link_to "Kontaktinformācija" ,:controller=>"home", :action => "kontakti" %></a></li> 
     <li><a class="menu"><%= link_to "Personāla pieeja" ,:controller=>"home", :action => "pers_pieeja" %></a></li> 
    </ul> 
    </li> 
    <li> 
    <h2>Administrācija</h2> 
    <ul> 
     <li><%= link_to "Lietotāju rediģēšana", edit_user_registration_path %></li> 
     <li><%= link_to "Rakstu rediģēšana" ,:controller=>"posts", :action => "index" %></li> 
     <li><%= link_to "Galeriju rediģēšana" ,:controller=>"admin", :action => "galeriju_red" %></li> 
    </ul> 
    </li> 
</ul> 

routes.rb:

devise_for :users 

get "admin/galeriju_red" 

resources :posts 

get "admin/rakstu_red" 

get "home/par_skolu" 

get "home/personals" 

get "home/kontakti" 

get "home/pers_pieeja" 

get "home/galerijas" 

get "home/index" 

ответ

2

Единственная идея, которую я могу думать меняет свои маршруты из:

get "home/index" 

в

match "/home/index" => "home#index", :via => [:get] 

Они эквивалентны, но матч делает путь хелперы доступны, так что ваши ссылки в поле зрения меню может выглядеть так:

<%= link_to "Home" main_app.home_index_path %> 

Main_app является встроенный помощник Rails, и это дает доступ к Rails маршрутизирует внутри Engine.

Если вы подобрали просто/home, помощник пути будет называться home_path.

Надеюсь, что эта проблема решена.

Ссылка: Routing in Rails

+0

Я изменил все мои навигационные ссылки в приложении к дорожкам, а не этот стиль: контроллер => «домой»,: действие => «Индекс», и теперь все работает! – RydelHouse

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