我正在研究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
答案 0 :(得分:1)
虽然我从未使用过RoR,但似乎你有任何开发人员利用MVC框架面临的经典问题 - 也就是说,yoru link_to处理程序中的操作指向无效路由。基于你的代码很明显,微博是你的模型,但我们不知道该模型的发送位置...你能否a)看看脚本的html输出(使用浏览器的内置开发人员工具或只是查看源代码)并验证生成的URL是否有效和/或b)发布为您的应用程序配置的路由映射?发布或/或将使社区更容易帮助您解决问题......
答案 1 :(得分:0)
检查您是否看到该行 &lt;%= stylesheet_link_tag%&gt;在您的布局文件application.html.erb
中如果您没有,那么您的删除脚本将无效