Rails在URL中添加id作为param

时间:2013-08-22 18:28:06

标签: ruby-on-rails url param

我确信这与我的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'

2 个答案:

答案 0 :(得分:0)

试试这个:

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

由于

答案 1 :(得分:0)

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

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