0

我只想链接到“/资源/企业家精神”而不是“/企业家精神”。下面的代码似乎不起作用,因为我不知道如何正确链接到它。

路线.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>

当我尝试打开页面时,错误是这样的。“#<#:0x007fd46571a160> 的未定义局部变量或方法‘资源’”

4

2 回答 2

2

你应该使用resources_entrepreneurship_path. 请注意,_而不是/.

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

namespace 'resources' do
    get 'entrepreneurship', to: 'static_pages#entrepreneurship'
end
于 2013-08-26T23:18:15.883 回答
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'
于 2013-08-26T23:18:26.467 回答