我想创建指向路线的链接
我的routes.db具有以下规则
match '/tablero', to: 'tablero#index',via: 'get' , as: 'tablero_main'
我可以使用rake路线看到路线
tablero_main GET /tablero(.:format) tablero#index
但是当我使用link_to时,我得到了"未定义的局部变量或方法`tablero_main'"错误。
<%= link_to "Tablero",tablero_main %>
我还缺少什么?
答案 0 :(得分:7)
您需要将path
附加到方法名称,如下所示:
<%= link_to "Tablero", tablero_main_path %>
答案 1 :(得分:1)
<强>路线强>
为了进一步帮助您,您还需要考虑resources
在路线中的角色
由于Rails使用resourceful routing infrastructure,每条路由都应基于资源。在你的情况下:
#config/routes.rb
resources :tablero, only: :index #-> domain.com/tablero
不可否认,这将为您提供路径tablero_index_path
,而不是tablero_main_path
,但它确保您的路由不仅是DRY,还可以是可扩展的。没有什么比在路线文件中拥有100条&#34; match
路线更糟糕了。
-
<强>助手强>
之后,请记住使用正确的route_path
帮助程序:
每条&#34;路线&#34; path基本上只是一个帮助方法(为你构建一个URL)。使用link_to
时,您需要直接引用path
帮助程序。你没有做到这一点,导致Rails带回未定义的方法错误