[英]Rails: URL being processed by incorrect controller action
I have a URL that is being processed by the wrong controller action. 我有一个错误的控制器操作正在处理的URL。 In my routes file I have the following
在我的路线文件中,我有以下内容
post '/tweets' => 'tweets#create'
Whenever I post to this url it is instead processed by tweets#index
. 每当我发布到此url时,它都会由
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)
I have tried restarting my rails server yet it still doesn't work. 我尝试重新启动Rails服务器,但仍然无法正常工作。
Here is the result of rake routes
这是
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
That is because you have post '/tweets' => 'tweets#create'
defined after other tweet
routes. 那是因为您在其他
tweet
路由之后定义了post '/tweets' => 'tweets#create'
。
Modify your route config by moving this line above other tweet
routes: 通过将此行移至其他
tweet
路由上方来修改您的路由配置:
# config/routes.rb
...
post '/tweets' => 'tweets#create'
resources :tweets, only: [ :index, :new ]
...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.