2007年9月20日木曜日

せっかくなので、テキストオートコンプリートを使いたい。

text_field_with_auto_complete。

くまくまーさんを頼りに、text_field_with_auto_completeの複数のフィールド対応を試してみる。

参考ページ
ヽ( ・∀・)ノくまくまー(08-29[長年日記])
ruby愛

前提、Railsの環境上であること

■multicontrols.jsを手に入れる。

くまくまーさんにはいつもお世話になっていて、今回もいただきー!と思ったのに、リンクが切れている。
探したら、改善版がruby愛さんのところで見つかった。
文字コードをutf8、改行コードをLFにして(念のため、prototype.jsに合わせた)RAILS_ROOT/public/以下に保存

■くまくまーさんで学んだとおりにコーディング。

くまくまーさんを見る。

■なぜか、Javascriptエラーが。。。

IEでは「Stack over line 0」が起こる。
FireFoxではタイマーのようにスクリプトエラーが起きまくる。。
4時間ほどハマって下さい。

■解決したのは

prototype.jsのバージョンが新しすぎたようです。
1.5.1.1を使用していました。

1.6.0_rc0 => ×
1.5.1.1 => ×
1.5.1 => ×
1.5.0 => ○

試した結果です。

■まとめ

text_field_with_auto_completeはもしかして、推奨されてないのかな。
Rails Documentationにも「DEPRECATION WARNING: This method will become a separate plugin when Rails 2.0 ships.」て書かれているし。
prototype.jsの1.5.1以上が必要になったときに、また考えよう。。