2013-07-15 4 views
0

을 통해 나는 코드가사용자 정의 경로 POST

get "test/index" 

그것은 잘 작동이 routes.rb에서 4.0

레일을 사용하고 있습니다. 내가 좋아하는 사용자 정의 경로를 추가 할 때 : 다음

post "test/some_controller_action" 

그리고 컬를 통해 파일을 전송

curl -X POST -H "Content-type: application/json" -d @result.json http://localhost:3000/test/some_controller_action 

나는 오류를

Started POST "/test/some_controller_action" for 127.0.0.1 at 2013-07-15 14:28:11 +0700 
ActionController::RoutingError (No route matches [POST] "/test/some_controller_action"): 
    actionpack (4.0.0) lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call' 
    actionpack (4.0.0) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call' 
    railties (4.0.0) lib/rails/rack/logger.rb:38:in `call_app' 
    railties (4.0.0) lib/rails/rack/logger.rb:21:in `block in call' 
    activesupport (4.0.0) lib/active_support/tagged_logging.rb:67:in `block in tagged' 
    activesupport (4.0.0) lib/active_support/tagged_logging.rb:25:in `tagged' 
    activesupport (4.0.0) lib/active_support/tagged_logging.rb:67:in `tagged' 
    railties (4.0.0) lib/rails/rack/logger.rb:21:in `call' 
    actionpack (4.0.0) lib/action_dispatch/middleware/request_id.rb:21:in `call' 
    rack (1.5.2) lib/rack/methodoverride.rb:21:in `call' 
    rack (1.5.2) lib/rack/runtime.rb:17:in `call' 
    activesupport (4.0.0) lib/active_support/cache/strategy/local_cache.rb:83:in `call' 
    rack (1.5.2) lib/rack/lock.rb:17:in `call' 
    actionpack (4.0.0) lib/action_dispatch/middleware/static.rb:64:in `call' 
    railties (4.0.0) lib/rails/engine.rb:511:in `call' 
    railties (4.0.0) lib/rails/application.rb:97:in `call' 
    rack (1.5.2) lib/rack/lock.rb:17:in `call' 
    rack (1.5.2) lib/rack/content_length.rb:14:in `call' 
    rack (1.5.2) lib/rack/handler/webrick.rb:60:in `service' 

레이크 노선 수 :

Prefix Verb URI Pattern     Controller#Action 
test_index GET /test/index(.:format)  test#index 
test_some_controller_action POST /test/some_controller_action(.:format) test#some_controller_action 

무엇 그 길에 문제가 있니?

+0

resources :test do post :some_controller_action, :on => :collection end 

HTH 당신이 실제로 컨트롤러를 작성했다. –

+1

'ActionController :: RoutingError (경로가 [POST]와 일치하지 않습니다. "/ turizm/create_info") :''turizm'이 오류일까요? – juanpastas

+0

@juanpastas, 편집 된 게시물. @MichaelSzyndel,''rails g controller test index''로 작성한 다음 수동으로'''some_controller_action''' 명령을 추가하고 route –

답변

2

한번에 실행하여 경로를 사용자의 경로에 이것을 추가하고 참조 레이크 노선

match '/test/some_controller_action' => 'test#some_controller_action', :via => :post, :as => :some_controller_action 
0

추가 ...이 routes.rb

post "/some_controller_action" => "test#some_controller_action", :as => :some_controller_action 
+0

도움을받지 못했습니다. 나는 같은 오류가 발생한다. –

0

이 더 나은 유지 보수를 제공하기 때문에 나는 다른 사람을 통해이 형식을 선호하는 것입니다 . 참고로, :on => :collection 부분이 중요합니다.

+0

나는 이해하지 못한다. 내 경우에는''': collection''이 무엇입니까? –