2014-07-07 28 views
0
我遇到的link_to一個奇怪的問題

,這是發生了什麼: 當我在這的link_to點擊:LINK_TO重定向錯誤

<li><%= link_to "Sign up", sign_up_path %></li> 

它重定向到會話/新的,但我想去用戶/新 我覺得我的routes.rb是錯誤的,但我看不出有什麼錯 這是我route.rb:

get "sessions/new" 
get "sign_up" => "users#new", :as => "sign_up" 
get "log_in" => "sessions#new", :as => "log_in" 
get "log_out" => "sessions#destroy", :as => "log_out" 
root :to => "sessions#new" 
resources :users 

resources :sessions 

resources :orchestras 

resources :conductors 

resources :instruments 

resources :integrants 

如果有人能幫助,謝謝。

更新

@ChrisPeters對我說看看是否有一個before_action重定向我到我的會話/新 我覈實,我發現了一個的before_filter:

before_filter :verifyUser, :only => [:orchestras, :conductors, :instruments, :integrants, :users] 

正因爲如此,我重定向到錯誤的頁面,我改變我的users_controller跳過此:

skip_before_action :verifyUser, only: [:new] 

和N它正在工作。 謝謝@ChrisPeters。

+0

'用戶#new'是否被'before_action'攔截了,它檢查用戶是否登錄並將用戶重定向到登錄頁面? –

+0

@ChrisPeters是有一個before_action,但在我的users_controller我這樣做: skip_before_action:authenticate_user,只:[:new] –

+0

@ChrisPeters對不起,我忘了看到有另一個before_action,這before_action重定向到會議/新的,我說在我的users_controller skip_before_action,現在它的工作,謝謝 –

回答

0

看看是否有before_action攔截請求並將用戶重定向到sessions#new

,正如你在更新說,它看起來像你已經錯過了一個:

before_filter :verifyUser, :only => [:orchestras, :conductors, :instruments, :integrants, :users] 

你能夠解決通過調用skip_before_action

skip_before_action :verifyUser, only: [:new] 

一個小指針將重新命名你的過濾方法爲verify_user,因爲snake_case是傳統的Ruby方法來命名你的方法。