LoginSignup
2
2

More than 5 years have passed since last update.

rails 3.2以降で、submit_to_remoteやlink_to_remote等を動かす方法

Posted at

rails 2まではsubmit_to_remoteでAjaxを使用していた方もいるかと思います。ところが、このsubmit_to_remoteは、rails 3以降、削除されてしまいました。

これらを再実装するには、「prototype_legacy_helper」というgemをインストールしてやるという方法があります。

ところが、これでも動かない場合があります。この「prototype_legacy_helper」の中では、remote_functionというメソッドが使用されているのですが、このremote_functionも、rails 3.1.0より上では削除されているのです。

そのため、submit_to_remoteを使用するためには、rails 3.1.0以降では、prototype_legacy_helperだけでは足りません。
このremote_functionを復活させる必要があり、それには「prototype-rails」というgemをインストールするという方法があります。

とりあえず、この「prototype-rails」をインストールしてやると、私の環境では動きました。
大した方法でもありませんが、なぜかこの「prototype-rails」というgemを紹介している日本語情報が見当たらなかったので(もっと詳しく探せばあるかもしれませんが)、書いてみました。

なお、remote_functionを動かすのだけが目的という場合は、gemをインストールしなくても、直接githubから「prototype-rails」をダウンロードして、解凍後、

/lib/action_view/helpers/prototype_helper.rb

以上のファイルの「module PrototypeHelper」の部分だけを抜き出して、railsアプリの「/app/helpers」とかに放り込んでやるだけでも動きます。
バージョンが上がるに従って、この方法でも動かなくなる可能性はありますが、参考になればと思います。

標準でメソッドが削除されたのなら、素直にそのメソッドを使わない方向に向かうべきなのかもしれませんが、早急にrails 2系のアプリをrails 3系に対応したいのならば、暫定的に利用するというのも有りかと思います。

2
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2