路由错误 没有与[GET]"/microposts/304-Deleting a Micropost-Michael Hartl's railstutorial.org第11章匹配的路由。[英] Routing Error No route matches [GET] "/microposts/304 - Deleting a Micropost - Michael Hartl's railstutorial.org Chapter 11

本文是小编为大家收集整理的关于路由错误 没有与[GET]"/microposts/304-Deleting a Micropost-Michael Hartl's railstutorial.org第11章匹配的路由。的处理方法,想解了路由错误 没有与[GET]"/microposts/304-Deleting a Micropost-Michael Hartl's railstutorial.org第11章匹配的路由。的问题怎么解决?路由错误 没有与[GET]"/microposts/304-Deleting a Micropost-Michael Hartl's railstutorial.org第11章匹配的路由。问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我正在学习 Michael Hartl 的关于 http://ruby.railstutorial.org 的 Ruby on Rails 教程.我在第 11 章遇到问题,特别是在尝试删除微博时.

我和这个用户遇到了同样的问题 路由错误没有路由匹配 [GET] "/microposts/304".他能够通过注释掉 jQuery gem 来解决这个问题并且它起作用了.然而,我就没有那么幸运了.

这是我当前的 Gemfile:

source 'http://rubygems.org'

gem 'rails', '3.1.1'

# Bundle edge Rails instead:
# gem 'rails',     :git => 'git://github.com/rails/rails.git'

gem 'sqlite3'
gem 'gravatar_image_tag', '1.0.0.pre2'
gem 'will_paginate', '3.0.pre2'

gem 'jquery-rails'
gem 'pg'

group :development do
  gem 'faker', '0.3.1'
end


# Gems used only for assets and not required
# in production environments by default.
#group :assets do
#  gem 'sass-rails',   '~> 3.1.4'
#  gem 'coffee-rails', '~> 3.1.1'
#  gem 'uglifier', '>= 1.0.3'
#end

# To use ActiveModel has_secure_password
# gem 'bcrypt-ruby', '~> 3.0.0'

# Use unicorn as the web server
# gem 'unicorn'

# Deploy with Capistrano
# gem 'capistrano'

# To use debugger
# gem 'ruby-debug19', :require => 'ruby-debug'

group :test do
  # Pretty printed test output
  gem 'turn', :require => false
end

=> 快速旁注:错误 No当我运行 rails server 命令时,windows 上运行 rails server 的 Javascript 运行时不断出现,但是一旦我注释掉 'sass-rails'、'coffee-rails' 和 'uglifier' gems,它就会成功运行.我使用的是 Windows PC,并被告知这可能是 Windows 计算机的特定问题.

此外,这是我的 bundle install 命令的当前结果:

Using rake (0.9.2.2)
Using multi_json (1.0.3)
Using activesupport (3.1.1)
Using builder (3.0.0)
Using i18n (0.6.0)
Using activemodel (3.1.1)
Using erubis (2.7.0)
Using rack (1.3.5)
Using rack-cache (1.1)
Using rack-mount (0.8.3)
Using rack-test (0.6.1)
Using hike (1.2.1)
Using tilt (1.3.3)
Using sprockets (2.0.3)
Using actionpack (3.1.1)
Using mime-types (1.17.2)
Using polyglot (0.3.3)
Using treetop (1.4.10)
Using mail (2.3.0)
Using actionmailer (3.1.1)
Using arel (2.2.1)
Using tzinfo (0.3.31)
Using activerecord (3.1.1)
Using activeresource (3.1.1)
Using ansi (1.4.1)
Using bundler (1.0.21)
Using faker (0.3.1)
Using gravatar_image_tag (1.0.0.pre2)
Using rack-ssl (1.3.2)
Using json (1.6.1)
Using rdoc (3.11)
Using thor (0.14.6)
Using railties (3.1.1)
Using jquery-rails (1.0.17)
Using pg (0.11.0)
Using rails (3.1.1)
Using sqlite3 (1.3.4)
Using turn (0.8.3)
Using will_paginate (3.0.pre2)
Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem
is installed.

我不知道如何解决这个问题.是否需要安装特定的 gem 才能使删除方法起作用?感谢您的帮助!

这是rake routes的输出:

(in C:/rails_projects/sample_app)
      users GET    /users(.:format)          {:action=>"index", :controller=>"us
ers"}
            POST   /users(.:format)          {:action=>"create", :controller=>"u
sers"}
   new_user GET    /users/new(.:format)      {:action=>"new", :controller=>"user
s"}
  edit_user GET    /users/:id/edit(.:format) {:action=>"edit", :controller=>"use
rs"}
       user GET    /users/:id(.:format)      {:action=>"show", :controller=>"use
rs"}
            PUT    /users/:id(.:format)      {:action=>"update", :controller=>"u
sers"}
            DELETE /users/:id(.:format)      {:action=>"destroy", :controller=>"
users"}
   sessions POST   /sessions(.:format)       {:action=>"create", :controller=>"s
essions"}
new_session GET    /sessions/new(.:format)   {:action=>"new", :controller=>"sess
ions"}
    session DELETE /sessions/:id(.:format)   {:action=>"destroy", :controller=>"
sessions"}
 microposts POST   /microposts(.:format)     {:action=>"create", :controller=>"m
icroposts"}
  micropost DELETE /microposts/:id(.:format) {:action=>"destroy", :controller=>"
microposts"}
     signup        /signup(.:format)         {:controller=>"users", :action=>"ne
w"}
     signin        /signin(.:format)         {:controller=>"sessions", :action=>
"new"}
    signout        /signout(.:format)        {:controller=>"sessions", :action=>
"destroy"}
    contact        /contact(.:format)        {:controller=>"pages", :action=>"co
ntact"}
      about        /about(.:format)          {:controller=>"pages", :action=>"ab
out"}
       help        /help(.:format)           {:controller=>"pages", :action=>"he
lp"}
       root        /                         {:controller=>"pages", :action=>"ho
me"}

这是一个使用删除方法的局部视图文件:

<tr>
  <td class="micropost">
    <span class="content"><%= micropost.content %></span>
    <span class="timestamp">
      Posted <%= time_ago_in_words(micropost.created_at) %> ago.
    </span>
  </td>
  <% user = micropost.user rescue User.find(micropost.user_id) %>
  <% if current_user?(user) %>
  <td>
    <%= link_to "delete", micropost, :method => :delete,
                                     :confirm => "You sure?",
                                     :title => micropost.content %>
  </td>
  <% end %>
</tr>

同样,可以在 Github https://github.com/railstutorial/sample_app 上查看源代码a>,它似乎无法在我的机器上正常运行,这让我相信它与 用户的问题.

推荐答案

我认为您缺少这两个中的一个.

//= require jquery
//= require jquery_ujs

我不小心删除了//= require jquery_ujs,这给了我同样的问题.

其他推荐答案

您是否在您的应用中同时使用原型和 jquery?
我可以看到您正在使用 jquery-rails gem,但是原型是否也在那里?
检查两者是否都被加载,因为它们相互冲突.

本文地址:https://www.itbaoku.cn/post/786351.html