Ruby on rails 如何为多个控制器导轨路由方法6

Ruby on rails 如何为多个控制器导轨路由方法6,ruby-on-rails,ruby-on-rails-5,rails-routing,Ruby On Rails,Ruby On Rails 5,Rails Routing,我的路线上有这个 get "invoices/log_out" => "users#logout", :as => "log_out" 这似乎只适用于localhost:3000/发票/新建/注销 当我在localhost:3000/invoices点击注销时,我出现以下错误 No route matches [GET] "/log_out" 所以我想让它在我的控制器都是5的情况下工作 类似于获取

我的路线上有这个

  get "invoices/log_out" => "users#logout", :as => "log_out"
这似乎只适用于
localhost:3000/发票/新建/注销
当我在
localhost:3000/invoices
点击注销时,我出现以下错误

No route matches [GET] "/log_out"
所以我想让它在我的控制器都是5的情况下工作 类似于
获取“所有控制器/注销”=>“用户注销”,:as=>“注销”

看看你的路线:

get "invoices/log_out" => "users#logout", :as => "log_out"
当有人点击
localhost::3000/invoices/log\u out
时,它会将请求路由到
users控制器上的
logout
方法。将路径部分更改为
“所有控制器/注销”
不会改变应用程序的任何行为,只会更改路径的文本。这对您的问题并不重要,但由于注销是一个单一的全局操作,您最好只使用
'/log\u out'
作为保持简单的路由路径

您没有包含视图代码的任何片段,但您的问题几乎肯定在于如何指定指向
链接。路由的
:as=>“注销”
部分定义了路由的别名。Rails使用别名(
log\u path
log\u URL
)自动创建URL帮助程序,您可以在视图和控制器中使用该别名链接到该操作:

<%= link_to "Logout", log_out_path %>

使用URL帮助程序可确保您的代码使用正确的路由,即使您以后在查看您的路由时更改了
routes.rb

中的实际路径:

get "invoices/log_out" => "users#logout", :as => "log_out"
当有人点击
localhost::3000/invoices/log\u out
时,它会将请求路由到
users控制器上的
logout
方法。将路径部分更改为
“所有控制器/注销”
不会改变应用程序的任何行为,只会更改路径的文本。这对您的问题并不重要,但由于注销是一个单一的全局操作,您最好只使用
'/log\u out'
作为保持简单的路由路径

您没有包含视图代码的任何片段,但您的问题几乎肯定在于如何指定指向
链接。路由的
:as=>“注销”
部分定义了路由的别名。Rails使用别名(
log\u path
log\u URL
)自动创建URL帮助程序,您可以在视图和控制器中使用该别名链接到该操作:

<%= link_to "Logout", log_out_path %>


使用URL帮助程序可确保您的代码使用正确的路由,即使您稍后在
路由中更改了实际路径。rb

请不要编辑问题本身的答案,有人花时间帮助您,将阅读他/她的答案的可能性留给其他人,如果这也适合他们,则向上投票。请不要编辑问题本身的答案,有人花时间帮助你,将阅读他/她的答案的可能性留给其他人,如果这也适合他们,则向上投票。