万年素人からHackerへの道

万年素人がHackerになれるまで殴り書きするぜ。

■Rails3で「DELETE」HTTPメソッドが上手くいかず、
scaffoldの削除機能がおかしくなった(「GET」メソッド動きになってしまう)のは、JavaScriptが原因らしい(@a_matsudaさん有難う御座います)

過去に↓のコマンドをやってjQueryを使おうとした経験があった。
それとかlayoutのjavascriptをいじった。

gem 'jquery-rails'
gem install jquery-rails
gem 'jquery-rails'
rails g jquery:install

※多分ここ参考にした
http://d.hatena.ne.jp/spitfire_tree/20101114/1289707759

=以下私がやって上手く行った手順です==
rails.jsがきちんと入ってないのでは?
→/public/javascripts/に入ってた。

jQuery用のは以下のgitで落とせるようだ。
https://github.com/rails/jquery-ujs.gi

gitコマンド使えなかった。MacBookAirにしてからまだインストールしてなかった
gitの公式サイトから
→「git-1.7.4.4-x86_64-leopard.dmg」を落とす。

インストール後に以下コマンドで入れたつもり。(この手順は要らないかも?)

 cd public/javascripts
 git clone https://github.com/rails/jquery-ujs.git 

https://github.com/rails/jquery-ujsの「Installation」って太字のの手順に従順した。

Gemfileをいじるみたいだが、なんだそれ?どこにある?
調べるとRailsでは、RailsアプリのルートにGemfileが置いてあるらしい
拡張子のない「Gemfile」ってテキストが存在したのでいじる

以下を追加(自分でいじったところは後々分かるように「added」のコメントを入れてます)

#added
gem 'jquery-rails', '>= 0.2.6'

以下のコマンドを実行する。オプションの説明で「(add --ui if you want jQuery UI):」ってあったけど英語読むの遅いのであとから気づいたが、 jQuery UIを入れるときに「--ui」オプションを入れるみたいだ

$ bundle install
$ rails generate jquery:install

今やるとせっかくの手順が消えたりして動かなったら嫌なので、今後は以下のコマンドやる予定

$ bundle install --ui
$ rails generate jquery:install


・2つのJSをダウンロードする
http://docs.jquery.com/Downloading_jQueryの「Download」から最新のjQueryをダウンロードする。
→私は1.5.2 (Release Notes)ってとこのUncompressed(未圧縮)のところから落としました。
名前はjquery-日付.jsとなってるが、「jquery.js」にリネームする。

https://github.com/rails/jquery-ujs/raw/master/src/rails.js
からそのまま「rails.js」の名前でダウンロードする。

Downloadディレクトリにダウンロードしたので、「 public/javascripts/」配下へ移動した

$ mv ~/Downloads/jquery.js public/javascripts/
$ mv ~/Downloads/rails.js public/javascripts/

以下の行を「application startup」ファイル?ってのは良く解らんけど、「config/application.rb 」に追加
onfig.action_view.javascript_expansions[:defaults] = %w(jquery rails)


まだ動かねーと思ったら、「app/views/layouts/application.html.erb」を以前以下のように修正してたのが原因と思う
javascript_include_tag :defaults」だけにした。
「Installation」の説明の一番下にもあるので

<!--    <%= javascript_include_tag :defaults %> -->
  <%= javascript_include_tag "jquery" %>

「DELETE」が動きました。