如何修复破碎的色器件在旅途1.0.4路由(How to fix broken devise rout

2019-09-21 20:18发布

我开始疑难解答“突然”破路线问题,这太问题: 设计/用户/ sign_in重定向到错误的控制器 ,并与帮助,我对这个问题的旅程1.0.3隔离在升级到1.0.4发生时,我更新到3.2.7轨道。

如你所知,我们需要在轨3.2.8,应用重要的安全补丁,但是这意味着我必须使用旅程1.0.4,它打破我的色器件的路线。 例如,我的自定义new_user_session路线欢迎#欢迎,但它被解码为设计/欢迎欢迎#不存在的。

有任何人碰到这个三角恋爱,如果是的话你是怎么做的旅程1.0.4发挥好与色器件?

被断开(根和设计击溃的路由:

    devise_for :users   
    devise_scope :user do
       get "/login"    => "devise/sessions#new"
       get "/register" => "devise/registrations#new"
    end  
    match '/signout/confirm' => 'signouts#confirm'

    root :to => "welcome#welcome"

================================================== ==============

编辑:2012-09-05

解:

我发现有问题的LOC:

link_to_unless_current( logo_image, { :controller => 'welcome', :action => 'welcome' } )

我把它改为:

link_to_unless_current( logo_image, { :controller => '/welcome', :action => 'welcome' } )

无济于事。

出于好奇,我把它改为:

link_to( logo_image, { :controller => '/welcome', :action => 'welcome' } )

和工作,就像:

link_to( logo_image, { :controller => 'welcome', :action => 'welcome' } )

所以,我想的最后一件事是:

link_to_unless_current( logo_image, root_path )

它的工作,现在一切都很好,与宇宙。

死后:我与Rails文档缺乏经验使我推断,虽然link_to()会接受root_path作为一个参数,即link_to_unless_current()不会。 但直到我看着的方法的源代码,我发现(而且应该一直假设) link_to_unless_current()是建立在之上link_to_unless()而这又是建立在顶部link_to()

非常感谢谁在这个线程和前一个帮助了乡亲。

Answer 1:

我曾与旅程1.0.4类似的问题,并制定在我小的Rails学习项目,其中加载与路由错误而失败的色器件注册页面。 我能够通过改变视图/布局/ application.html.erb及其谐音加入到该网站的标题的链接来解决这个问题。

我改变了这样的链接:

<%= link_to 'Home', {:controller=>'welcome', :action=>'index'} %>

至:

<%= link_to 'Home', {:controller=>'/welcome', :action=>'index'} %>

和路由开始工作。



文章来源: How to fix broken devise routing under journey 1.0.4