0
我有一個Rails 3.1應用程序,我剛剛得到一些奇怪的行爲。是否有像``controller#action``這樣的路線與`:controller =>'controller'`和`:action =>'action'`不一樣?
我有兩個途徑聲明如下:
# OLD METHOD
get 'accept_terms', :to => "users_terms#show"
put 'accept_terms', :to => "users_terms#accept'"
運行rake routes
包括以下內容:
# accept_terms
# GET /accept_terms(.:format) {:action=>"show", :controller=>"users_terms"}
# PUT /accept_terms(.:format) {:action=>"accept'", :controller=>"users_terms"}
的GET
工作得很好,但PUT
產生這個錯誤:
AbstractController::ActionNotFound (The action 'accept'' could not be found for UsersTermsController):
我確認該行爲確實存在在那個控制器上。
而有問題擺弄周圍,我改變了路線聲明到:
get 'accept_terms', :controller => 'users_terms', :action => 'show'
put 'accept_terms', :controller => 'users_terms', :action => 'accept'
運行產生rake routes
:
# accept_terms
# GET /accept_terms(.:format) {:controller=>"users_terms", :action=>"show"}
# PUT /accept_terms(.:format) {:controller=>"users_terms", :action=>"accept"}
這樣,既GET
和PUT
正常工作。
是:to => "controller#action
與:controller => 'controllerName', :action => 'actionName'
不一樣?
我在製作路線看到的唯一的區別是:action
和:controller
你既單引號和雙引號結束users_terms#accept
...的順序
靠天哪,你是對的。那麼,我會投票刪除這個問題。理由:羞恥/「太局部」。 :) –