2014-03-28 2 views
0

У меня есть URL-адрес, который обрабатывается неправильным действием контроллера. В моем файле маршрутов у меня есть следующийRails: URL-адрес обрабатывается некорректным действием контроллера

post '/tweets' => 'tweets#create' 

Всякий раз, когда я отправляю на этот адрес он вместо этого обработан tweets#index.

Started POST "/tweets" for 127.0.0.1 at 2014-03-27 20:04:25 -0700 
Processing by TweetsController#index as HTML 
    Parameters: {"utf8"=>"✓", "authenticity_token"=>"CCN9rDQiSXkVK0sF/BGU19fIufJTpho/ocySPmu7Lsc=", "tweet"=>{"title"=>"sdfdsafdsa", "description"=>"sdfdsasdadsa", "user_id"=>"1"}, "commit"=>"Create Tweet"} 
    Tweet Load (0.4ms) SELECT `tweets`.* FROM `tweets` 
    Rendered tweets/index.html.erb within layouts/application (0.1ms) 
Completed 200 OK in 42ms (Views: 40.6ms | ActiveRecord: 0.4ms) 

Я попытался перезапустить сервер рельсов, но он все еще не работает.

Вот результат rake routes

tweeter: rake routes 
     new_user_session GET /users/sign_in(.:format)  devise/sessions#new 
      user_session POST /users/sign_in(.:format)  devise/sessions#create 
    destroy_user_session DELETE /users/sign_out(.:format)  devise/sessions#destroy 
      user_password POST /users/password(.:format)  devise/passwords#create 
     new_user_password GET /users/password/new(.:format) devise/passwords#new 
     edit_user_password GET /users/password/edit(.:format) devise/passwords#edit 
         PUT /users/password(.:format)  devise/passwords#update 
cancel_user_registration GET /users/cancel(.:format)  devise/registrations#cancel 
     user_registration POST /users(.:format)    devise/registrations#create 
    new_user_registration GET /users/sign_up(.:format)  devise/registrations#new 
    edit_user_registration GET /users/edit(.:format)   devise/registrations#edit 
         PUT /users(.:format)    devise/registrations#update 
         DELETE /users(.:format)    devise/registrations#destroy 
        tweets  /tweets(.:format)    tweets#index 
       tweets_new  /tweets/new(.:format)   tweets#new 
         POST /tweets(.:format)    tweets#create 
        root  /       tweets#index 
+0

Кажется, что есть что-то не так с вашими путями. Можете ли вы опубликовать весь свой файл маршрутов? – tompave

ответ

5

Это потому, что у вас есть определенный post '/tweets' => 'tweets#create' после других tweet маршрутов.

Изменить маршрут конфигурации, перемещая эту строку выше других tweet маршрутов:

# config/routes.rb 
... 
post '/tweets' => 'tweets#create' 
resources :tweets, only: [ :index, :new ] 
...