2011-06-18 83 views
0

我有几个需要身份验证的操作。例如,创建一个新的收藏夹或待办事项:Rails路由:重定向到需要登录的路由

resources :users, :has_many => [ :favs, :todos ] 

我最常做的是过滤器来检查,如果用户在签订适当的行动之前添加如果他们没有在过滤器节省目标网址并将其重定向到登录页面。登录后,他们被重定向到保存的URL。

但是,鉴于上述路线,这是不可能的,因为用户必须登录才能生成URL。

这是否意味着我要补充路由到:favs:todos控制器: /favs/new/todos/new只是应对情况?

否则,我要建立的网址关键词的映射做重定向:中/login?return_to=new_todo代替/login?return_to=http://localhost/bob/todo/new

回答

0

我不知道你正在努力实现什么样的大局观,但我会强烈建议检查一下像Devise这样的认证宝石。

https://github.com/plataformatec/devise

这是一个很大的工作来处理身份验证正确(和安全)的,除非你有特殊情况,很可能不值得在这里推倒重来的时间。

另外,设计处理您提到的功能。