どなたが知識をご教授下さい。
Rails3でAjaxのごく普通のハイパーリンクを作成したいのですが、うまくいきません。
/users/index.html.erb
<div id="hoge">
<%= link_to "ajax",{:action => 'draw'},:remote => true %>
</div>
--
/users/_draw.html.erb
~いろいろ内容~
--
/users/draw.js.erb
$('#hoge').html("<%= escape_javascript(render :partial => 'draw' )%>");
--
/users_controller.rb
def draw
~いろいろ処理~
end
--
ルーティング
match 'users/draw' => 'users#draw'
--
application.html.erb
<%= javascript_include_tag :defaults %>
--
gemfile
gem 'jquery-rails'
以上のように処理するよう様々なサイトや書籍にはありましたが、「Templete Missing」のエラーが出てしまいます。かれこれ5時間以上ハマってまして、、、
どなたか知識をご教授頂けたら幸いです。
*メモ
アクションdrawに渡ったときに、
「request.xhr?がfalse」ということは、ajax通信できていないということでしょうか???
No.1ベストアンサー
- 回答日時:
こちらの環境では、正しく動作しています。
CentOS release 5.6 (Final)
Rails 3.0.10
ruby 1.9.2p180 (2011-02-18 revision 30909) [i686-linux]
request.xhr?はこちらではtrueになっています。
ですので、rails.jsとjquery.jsの何れかが不正のような気がします。
念のため、以下のようにしてみてください。
(ファイルを置き換えるので、バックアップは取っておいてください)
1.jqueryをダウンロード
http://docs.jquery.com/Downloading_jQuery
jQuery CDN
jquery-1.6.4.min.js をダウンロードし、 jquery.jsにリネームする。
2.jquery用のrails.jsを使う。
https://github.com/rails/jquery-ujs/tree/master/ …
からダウンロードする。
3.publicのjavascripts下に以下のファイルがあるので削除する。
prototype.js controls.js effcts.js dragdrop.js
4.ダウンロードした
jquery.js と rails.js をpublicのjavascripts下に配置する。
(rails.jsは上書きする)
上記のようにしてやってみてください。そのようにすると、こちらでは正しく動作します。
特に、prototype.jsとjquery.jsは共存させないほうが安全です。
ご教授ありがとうございます。
Started GET "/users/draw" for 127.0.0.1 at Sun Oct 30 18:56:48 +0900 2011
Processing by UsersController#draw as JS
-もろもろ処理-
Rendered users/_draw.html.erb (0.6ms)
Rendered users/draw.js.erb (2.3ms)
Completed 200 OK in 148ms (Views: 14.1ms | ActiveRecord: 2.4ms)
と、正常っぽい動きになりました!!!!ありがとうございます!
ですが、依然画面が切り替わりません。。
(ちなみにrequest.xhr?は、今は0でコンソールに表示されています。。)
何か、思い当たることはありませんか???
No.2
- 回答日時:
#1です。
>ですが、依然画面が切り替わりません。。
>(ちなみにrequest.xhr?は、今は0でコンソールに表示されています。。)
>何か、思い当たることはありませんか???
まず、request.xhr?は、今は0でコンソールに表示されていますとのことですが、
これは、trueかfalseのはずです。(こちらはtrueで表示されます)
コントローラの
def drawのメソッドの中で
p request.xhr?
とすると、その内容が表示されますが、その結果が0なのでしょうか?
依然画面が切り替わりません。ということですが、
ajaxは、同一画面で、画面内の一部を更新する機能です。
ですので、その前提で回答します。(質問者様が全く別の画面に切り替わることを期待はしていないと理解しています)
今回、切り替えの対象になるのは、
<div id="hoge">
<%= link_to "ajax",{:action => 'draw'},:remote => true %>
</div>
のhogeのIDを持つ部分です。
ですから、上記の定義ではなく、
<div id="hoge">XXXX</div>
<%= link_to "ajax",{:action => 'draw'},:remote => true %>
のように定義し、
XXXXの部分を
$('#hoge').html("<%= escape_javascript(render :partial => 'draw' )%>");
で、置き換えることになります。
users/_draw.html.erbの
~いろいろ内容~
の部分が、置き換えの対象になります。
1.コントローラのdefメソッドの全て
2.以下のview
/users/index.html.erb
/users/_draw.html.erb
/users/draw.js.erb
の<div id="hoge"に関する部分の全て
が提示されれば、問題が解決するかも知れません。
どうもご返事ありがとうございます!
解決致しました!!
#1さんがおっしゃるように、/users/draw.js.erb
を開示すべきでした。。お手数おかけして申し訳ございませんでした。
結局/users/draw.js.erbの中で、別の関数を読んでいたのですが、記述方法に誤りがありました。。
以後、内容は詳しく記載するように致します。それにしてもprototype.jsとjquery.jsが共存するだけで動かない、rails.jsを書き換える、こういったことまで頭がまわらず、一人では解決できなかった部分でしたので、知識をご教授頂けて幸いです!!
どうもありがとうございました!!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript GoogleChart 階層ごとのブロックの長さを個別に設定したい 1 2022/07/06 14:27
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- フリーソフト libreoffice drawのツールバーのチェックが外れてしまう 1 2022/10/04 22:02
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- 英語 中二の英語についてです。 私は地図を描くのに紙が1枚必要です。 I need a sheet of 5 2022/08/19 17:11
- Visual Basic(VBA) 【VBA】印刷マクロのループ処理が反映されません 3 2022/08/09 02:15
- Excel(エクセル) 1つのファイルを3つのフォルダにファイル名を【明日の日付】にして、コピーをしたい 2 2022/12/21 17:43
- その他(開発・運用・管理) WindowsからSSHでサーバーにあるファイルをダウンロードできない…。 3 2022/04/24 11:08
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
複数のjavascriptを使うと動か...
-
wordpressでJavascriptのフラッ...
-
bxslider、画像が3枚以上になる...
-
音楽再生用jQueryプラグイン「j...
-
Base64に変換したHTMLの<script...
-
<a href="#" …>の意味を教えて...
-
bodyにidをつける理由は何ですか?
-
フォーカス移動抑止について
-
iframeの中から親ページをスム...
-
SQLのWHEREで全てを質問する方法
-
テーブル内の数値を自動で計算...
-
JavaScript でキーを送る
-
javascriptとApacheの設定
-
テキストをクリックすると答え...
-
javascriptでalertの文字列をコ...
-
cssにjavascriptを入れる?呼び...
-
getElementsByNameで要素が取得...
-
Jquery.PHPファイルのechoが表...
-
キーを押している間の時間を計...
-
onbeforeunload時のwindow.open...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
base64encodeでの文字化けについて
-
jquery ui.resizable 使い方
-
複数のjavascriptを使うと動か...
-
Base64に変換したHTMLの<script...
-
bxslider、画像が3枚以上になる...
-
Jqueryの干渉について
-
DreamWeaverでJS
-
複数のバージョンのjQueryを同...
-
マウスオーバー+クリカブルマッ...
-
マスターページでのJavaScriopt...
-
jqueryのcolorboxを読込直後に...
-
javascript外部読み込みの際の引数
-
lightbox2 表示の不具合
-
jsファイルで配列を定義し、j...
-
jqueryを2つ設置した事で片方...
-
<script>タグというのはどこか...
-
Javascriptがうまく動作しません。
-
同一HTML内に複数のjQueryを作...
-
jqueryについて(Lightboxとbxs...
-
colorboxの直接呼び出し方法に...
おすすめ情報