jQuery没有在Michael Hartl的教程第11章的删除操作上工作

时间:2011-11-25 02:47:30

标签: jquery ruby-on-rails

我正在研究Michael Hartl的rails教程,就像rails中的其他新手一样。 无论如何,我仍然坚持第11章,因为有些JQuery没有使用删除操作问题。也就是说,当点击任何删除按钮时,它只会将我重定向到一个特定的错误页面,上面写着“没有路由匹配[GET]”/ microposts / 301“

_micropost.html.erb页面中的代码如下:

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

所以,我检查了我的gem文件是否有原型和jQuery冲突。 我找到的是如下

source 'http://rubygems.org'

gem 'rails', '3.1.1'
gem 'annotate', :git => 'git://github.com/ctran/annotate_models.git'

# 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'
# 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

gem 'jquery-rails'


group :development do
  gem 'rspec-rails', '2.6.1'
  gem 'faker', '0.3.1'
end

group :test do
  gem 'rspec-rails', '2.6.1'
  gem 'webrat', '0.7.1'
  gem 'factory_girl_rails', '1.0'
end

group :production do
  gem 'therubyracer-heroku', '~> 0.8.1.pre3', :platform => :ruby
  #gem 'therubyracer-heroku', '0.8.1.pre3' # you will need this too
  gem 'pg'
end

所以,我非常肯定这里没有安装原型,因为我听说rails 3.1以后默认使用了jQuery。

您认为有什么建议让它适合我吗?在哪里检查我的jQuery是否已正确安装。

根据@Tuck的建议,我在这里发布我的routes.rb。

SampleApp::Application.routes.draw do
  resources :users
  resources :sessions, :only => [:new, :create, :destroy]
  resources :microposts, :only => [:create, :destroy]

  match '/signup',  :to => 'users#new'
  match '/signin',  :to => 'sessions#new'
  match '/signout', :to => 'sessions#destroy'

  match '/contact', :to => 'pages#contact'
  match '/about',   :to => 'pages#about'
  match '/help',    :to => 'pages#help'

  root :to => 'pages#home'

  get "pages/home"

  get "pages/contact"

  get "pages/about"

end

2 个答案:

答案 0 :(得分:1)

虽然我从未使用过RoR,但似乎你有任何开发人员利用MVC框架面临的经典问题 - 也就是说,yoru link_to处理程序中的操作指向无效路由。基于你的代码很明显,微博是你的模型,但我们不知道该模型的发送位置...你能否a)看看脚本的html输出(使用浏览器的内置开发人员工具或只是查看源代码)并验证生成的URL是否有效和/或b)发布为您的应用程序配置的路由映射?发布或/或将使社区更容易帮助您解决问题......

答案 1 :(得分:0)

检查您是否看到该行 &lt;%= stylesheet_link_tag%&gt;在您的布局文件application.html.erb

如果您没有,那么您的删除脚本将无效