Ruby on rails 3 为什么在Rails 3中,带有自定义操作的路由不起作用?(更好的方式?)

Ruby on rails 3 为什么在Rails 3中,带有自定义操作的路由不起作用?(更好的方式?),ruby-on-rails-3,routes,Ruby On Rails 3,Routes,我的routes.rb中有以下代码: match 'users/linkedin' => "users#linkedin", :as => :register_linkedin 我的期望是,当我注册linkedin url时,我会被重定向到domain.com/users/linkedin 这将导致控制器用户执行linkedin操作 这是我在日志中得到的: 重定向到 在2833MS中找到已完成的302个 已开始获取的“/users/linkedin” 127.0.0.1 2011年

我的routes.rb中有以下代码:

match 'users/linkedin' => "users#linkedin", :as => :register_linkedin
我的期望是,当我注册linkedin url时,我会被重定向到domain.com/users/linkedin

这将导致控制器用户执行linkedin操作

这是我在日志中得到的:

重定向到 在2833MS中找到已完成的302个

已开始获取的“/users/linkedin” 127.0.0.1 2011年4月14日星期四01:12:01-0700处理 UsersController#显示为HTML
参数:{“id”=>“linkedin”} 在94毫秒内完成

这就是我在“rake routes”中得到的:

注册linkedin
/用户/linkedin(:格式)
{:action=>“linkedin”, :controller=>“users”}


所以这些线路不能正常工作。我该如何解决这个问题呢?

这是因为您可能在路由中使用了
资源:用户

如果您想保留您的
show
操作,并同时使用linkedin部分,请将您的自定义路线放在
resources:users

如果请求是特定的(用户/linkedin),那么路由将匹配
linkedin
,如果不是,路由将继续搜索,下一个路由当然是
show


阅读有关路由的详细信息,一般来说

路由按定义的顺序匹配。将更具体的路线放在比不太具体的路线更高的位置


在您的情况下,请确保在定义更通用的
资源:用户
路由之前为
用户/linkedin
定义自定义路由。

您好,我该怎么办?我仍然使用“显示”用户——这只是创建新用户的自定义版本,不适用于DesiveOkay——这就是它的原委——但我意识到,如果可以的话,我应该找到一种使用“新”操作的方法。