使用路线链接到家庭/子页面/此而不是家庭/本次

时间:2013-08-26 23:13:42

标签: html ruby-on-rails ruby

我只想链​​接到“/ resources / entreprenehip”而不是“/ entreprenehip”。下面的代码似乎不起作用,因为我不知道如何正确链接它。

的routes.rb

Project::Application.routes.draw do
  root to: 'static_pages#home'

  get '/about',    to: 'static_pages#about'
  get '/resources/entrepreneurship', to: 'static_pages#entrepreneurship'
end

标题

<li><%= link_to "Entrepreneurship", resources/entrepreneurship_path %></li>

当我尝试打开页面时出现错误。 “未定义的局部变量或方法`资源'用于#&lt;#:0x007fd46571a160&gt;”

2 个答案:

答案 0 :(得分:2)

您应该使用resources_entrepreneurship_path。请注意_而不是/

此外,您可以将路由嵌套在命名空间中,如下所示:

namespace 'resources' do
    get 'entrepreneurship', to: 'static_pages#entrepreneurship'
end

答案 1 :(得分:2)

调用匹配路由的正确语法是在指定链接标记中的路径时用_替换/

<%= link_to "Entrepreneurship", resources_entrepreneurship_path %>

请注意以下几点:

首先,您可以指定路线的名称,该名称将覆盖默认名称:

# config/routes.rb
get '/resources/entrepreneurship', to: 'static_pages#entrepreneurship', :as 'custom_name'

# view template
<%= link_to "Entrepreneurship", custom_name_path %>

其次,routes.rb假设路径相对于应用程序根目录,因此您可以在路由声明中省略前面的/,它仍然可以正确解析:

# config/routes.rb
get 'resources/entrepreneurship', to: 'static_pages#entrepreneurship'