jQueryはMichael Hartlのチュートリアルの第11章の削除アクションでは動作しません

私は、レールの他の初心者のように、Michael Hartlによるレールチュートリアルに取り組んでいます。 とにかく、私は第11章でも、削除アクションの問題を扱っていないいくつかのJQueryでそれらのように立ち往生しています。言い換えれば、削除ボタンをクリックすると、特定のエラーページにリダイレクトされます。「ルートは[GET]と一致しません」/ microposts/301 "

_micropost.html.erbページのコードは次のとおりです。

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

だから、プロトタイプと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

したがって、ここではプロトタイプがインストールされていないことを確信しています。レール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
jQueryが読み込まれているかどうかは、「スクリプト」セクションのFirebug/Chromeをチェックすることで確認できます。しかし、それはルーティングやコントローラで問題になる可能性が高いです。
追加された 著者 Dave Newton,
追加された 著者 mockturtl,

2 答え

RoRを使ったことはありませんが、MVCフレームワークを利用している開発者が直面している古典的な問題、つまりyoru link_toハンドラのアクションが無効なルートを指しているようです。あなたのコードに基づいて、マイクロポストはあなたのモデルですが、そのモデルがどこに送られているのかはわかりません。あなたはa)スクリプトからのhtml出力を見てみることができますか?(ブラウザの組み込み開発ツールソースを表示するだけです)、生成されたURLが有効であること、および/またはb)あなたのアプリケーション用に設定されたルートマッピングを投稿することを確認しますか? /またはどちらかを投稿することで、コミュニティが問題のトラブルシューティングを手助けするのがもっと楽になります...

1
追加された
私は今働いている!私はビューのソースページからコードをトレースし、各リファレンスを1つずつチェックしてから、jQuery関連のファイルが意図した場所にないことがわかりました。だから、私はちょうどjquery.jsとjquery_ujs.js上の別の作業中のアプリケーションのフォルダからコピーしました。そして今、それは魅力のように働いています。
追加された 著者 Sarun Sermsuwan,

Check if you see the line <%= stylesheet_link_tag %> in your layout file application.html.erb

あなたがそれを持っていなければ、あなたの削除スクリプトはうまくいかないでしょう

0
追加された