2013-08-22 3 views
0

я уверен, что это что-то делать с моей N00b синтаксисом, но у меня возникают проблемы разработка, что это такое ...Rails добавляющего идентификатора как пары в URL

Я создаю меню с помощью цикла через пункты в моей таблице ВложенныеСтраницы и создание ссылки для каждого элемента, который возвращается, как это:

<% @subpages.each do |menu| %> 
<%= link_to(menu.name, {:controller => 'public', :action => "page", :id => menu.permalink }, :class => "show action footer-link") %> 
<% end %> 

это работает отлично на главной странице моего сайта, но если вы посетите один из подстраниц, давайте скажем о том us page:

http://localhost:3000/public/page/about-us 

, а затем попытайтесь снова использовать меню, чтобы посетить «связаться с нами», вместо того, чтобы вас по этой ссылке, как я бы ожидать:

http://localhost:3000/public/page/contact-us 

Это приведет вас к этой ссылке:

http://localhost:3000/public/page/about-us?id=contact-us 

Какую ошибку школьного мальчика я здесь делаю?

Заранее спасибо.

редактировать: мои маршруты

root :to => "public#index" 
    get 'admin', :to => 'access#menu' 
    get 'public/show/:permalink', :to => 'public#show' 
    get 'public/page/:permalink', :to => 'public#page' 
+0

Please pas здесь ваши маршруты. –

+0

добавил маршруты к OQ - спасибо –

ответ

0

мне удалось заставить его работать, пропуская: постоянные ссылку пары в контроллер вместо того, ID

<% @subpages.each do |menu| %> 
    <%= link_to(menu.name, { :action => "page", :permalink => menu.permalink }, :class => "show action footer-link") %> 
<% end %> 
0

Попробуйте с этим:

<% @subpages.each do |menu| %> 
    <%= link_to(menu.name, page_public_path(menu.permalink), :class => "show action footer-link") %> 
<% end %> 

Благодарность

+0

hmm .. это дает мне ошибку .. NoMethodError в PubliC# страница Показаны /Users/Simo/Sites/nvs-git/app/views/layouts/public.html.erb где строка # 68 поднята: undefined method 'page_public_path 'для # <# <Класс: 0x007f81caf2dfe8>: 0x007f81ca10c9a0> –