问题描述
|
我的routes.rb中有以下代码:
match \'users/linkedin\' => \"users#linkedin\",:as => :register_linkedin
我的期望是,当我有一个redirect_to register_linkedin_url时,我将被重定向到domain.com/users/linkedin。
然后,这将导致执行动作的控制器用户被执行。
这是我在日志中得到的:
重定向到
http:// localhost:3000 / users / linkedin
在28333ms内完成302发现
开始了GET \“ / users / linkedin \”
127.0.0.1 at Thu Apr 14 01:12:01-07-07 2011 Processing by
UsersController#显示为HTML
参数:{\“ id \” => \“ linkedin \”}
94ms内完成
这就是我在“耙路”中得到的:
register_linkedin
/users/linkedin(.:format)
{:action => \“ linkedin \”,
:controller => \“用户\”}
因此路由无法正常运行。我该如何解决?
解决方法
这是因为您的路线中可能使用了“ 1”
如果您想保留
show
动作,并且也要使用linkedin部分,请将自定义路线放在resources :users
之前
这样,如果请求是特定的(用户/ linkedin),则路由将匹配match4ѭ,否则,将继续搜索,下一个当然是show
在此处阅读有关路由的更多信息
,路由按照定义的顺序进行匹配。将较具体的路由置于较不具体的路由之上。
在您的情况下,只需确保在定义更通用的resources :users
路由之前为users/linkedin
定义自定义路由。