rails 4 with devise,路由顺序定义使重定向循环具有重定向

时间:2014-12-30 20:28:38

标签: ruby-on-rails ruby-on-rails-4 devise

我正在用设计做一个示例项目,并在我的路线上有这个:

resources :admins
devise_for :admins

它会导致重定向循环。我将线条的顺序改为:

devise_for :admins
resources :admins

然后它奏效了。

为什么?

1 个答案:

答案 0 :(得分:0)

Rails路由按照指定的顺序进行匹配,resourcesdevise_for都是多条路由的简写。 Here是资源生成的路由列表,here是Devise生成的路由列表。

我无法回答具体导致重定向循环的内容,而不知道你拥有的所有'-able'设计类别(可确认,可恢复等),但似乎问题是为创建生成的两个POST路由一个新的管理员。这就是为什么通常认为最好不要在路线中使用资源。

如果您想确定可以在终端中运行rake routes以查看这些资源所做的所有路由,请找出任何可能的重复项,然后将这些重复项放在except:后面资源,看看你是否发现了问题:

resources :admins, except: :create
devise_for :admins