我只想链接到“/ 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;”
答案 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'