无法创建指向路线的链接

时间:2014-08-01 19:02:31

标签: ruby-on-rails ruby-on-rails-4

我想创建指向路线的链接

我的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 %>

我还缺少什么?

2 个答案:

答案 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帮助程序:

enter image description here

每条&#34;路线&#34; path基本上只是一个帮助方法(为你构建一个URL)。使用link_to时,您需要直接引用path帮助程序。你没有做到这一点,导致Rails带回未定义的方法错误