什么是非资源路由的link_to路径?

Sco*_*ott 7 ruby ruby-on-rails ruby-on-rails-3

我有一条非资源路由,在路由中使用SHA令牌.这是在我的routes.rb文件中:

match 'permissions/confirm/:token' => 'permissions#confirm'
Run Code Online (Sandbox Code Playgroud)

我可以访问生成的路由,但我不知道传递给link_to帮助器的内容.

这是我正在使用的link_to,它不起作用:

<%= link_to "Give permission", confirm_permission_path(:token => @permission.token) %>
Run Code Online (Sandbox Code Playgroud)

思考?

Ser*_*nin 12

添加:as您的路线键,如match 'permissions/confirm/:token' => 'permissions#confirm', :as => :confirm_permissions

然后 <%= link_to "Give permission", confirm_permissions_path(:token => @permission.token) %>


wha*_*ter 5

您始终可以使用rake routes来确定路径的名称.我一直仔细检查那个rake任务的输出,以确保我正在使用正确的restful或非restful路径.

  • 运行`rake routes`时,有3列数据.第一列是link_to路径,例如:`users_path`.第二列是格式(例如`/ users/index(.:format)`.最后,第三列是动作和控制器(例如`{:controller => etc ...}`.所以看看那个第一列,您将看到您需要的数据. (4认同)