我正在用设计做一个示例项目,并在我的路线上有这个:
resources :admins
devise_for :admins
它会导致重定向循环。我将线条的顺序改为:
devise_for :admins
resources :admins
然后它奏效了。
为什么?
答案 0 :(得分:0)
Rails路由按照指定的顺序进行匹配,resources
和devise_for
都是多条路由的简写。 Here是资源生成的路由列表,here是Devise生成的路由列表。
我无法回答具体导致重定向循环的内容,而不知道你拥有的所有'-able'设计类别(可确认,可恢复等),但似乎问题是为创建生成的两个POST路由一个新的管理员。这就是为什么通常认为最好不要在路线中使用资源。
如果您想确定可以在终端中运行rake routes
以查看这些资源所做的所有路由,请找出任何可能的重复项,然后将这些重复项放在except:
后面资源,看看你是否发现了问题:
resources :admins, except: :create
devise_for :admins