0

我确定这与我的 N00b 语法有关,但我无法弄清楚它是什么......

我通过遍历子页面表中的项目并为返回的每个项目创建一个链接来创建一个菜单,如下所示:

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

这在我网站的主页上运行良好,但如果您访问其中一个子页面,让我们说一下关于我们的页面:

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'
4

2 回答 2

0

试试这个:

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

谢谢

于 2013-08-22T18:49:32.370 回答
0

我设法通过将 :permalink 参数而不是 ID 传递给控制器​​来使其工作

<% @subpages.each do |menu| %>
    <%= link_to(menu.name, { :action => "page", :permalink => menu.permalink }, :class => "show action footer-link") %>
<% end %>
于 2013-08-22T21:12:19.843 回答