微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么在Rails 3中使用自定义操作的此路由不起作用? 更好的方法?

如何解决为什么在Rails 3中使用自定义操作的此路由不起作用? 更好的方法?

| 我的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
定义自定义路由。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。