我開始在這個SO問題中排除我的「突然」破損路線問題: Devise /users/sign_in redirecting to wrong controller並在幫助下,我能夠將問題與從旅程1.0.3升級到當我更新到rails 3.2.7時發生了1.0.4。如你所知,我們需要在rails 3.2.8上應用重要的安全修補程序,但這意味着我必須使用旅程1.0.4,這會破壞我的設計路線。例如,我的自定義new_user_session路由是受歡迎的#welcome,但它正在被解碼爲設計/歡迎#welcome,它不存在。如何修復在旅途中破碎的設計路由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_unless()
又建立在link_to()
之上。
大謝謝你誰幫助誰在這個線程和前一個人。
請發佈您的'routes.rb'文件 – janders223
良好的通話!你想要所有的還是僅僅以設計爲中心的路線? –
除非可怕的時間很長,否則一切都很好 – janders223