2
在routes.rb中,我有:如果用戶登錄,假如果不是一個匹配的路由覆蓋另一個,但不應
[some routes]
match '/me' => "scores#all_athlete_scores", :constraints => LoggedInChecker
devise_scope :user do
match '/me' => "devise/sessions#new"
end
match '/scores/athlete/:id', :to =>"scores#all_athlete_scores", :as => "all_athlete_scores"
[some more routes]
LoggedInChecker返回true。如果爲false,則第二個路由將其選中並將用戶發送到登錄頁面。
在scores_controller_test.rb,我有:
def test_get_all_athlete_scores
[set up]
get :all_athlete_scores, :id => @user
end
怪異的部分是,request.filtered_parameters [:full_path]在scores_controller_test被/[email protected]而非/比分/運動員/ :ID'。
如果更改的routes.rb爲:
[some routes]
match '/scores/athlete/:id', :to =>"scores#all_athlete_scores", :as => "all_athlete_scores"
match '/me' => "scores#all_athlete_scores", :constraints => LoggedInChecker
devise_scope :user do
match '/me' => "devise/sessions#new"
end
[some more routes]
測試工作正常,並request.filtered_parameters [:full_path] = /比分/運動員/:ID。
完全被這個困惑 - /我不應該匹配GET時all_athlete_scores。
任何想法?
是的,就是這樣。謝謝! – kareem 2012-03-29 23:44:46