index.html.erb
link_to 'search', users_path, remote:true, data: {sort_target: arg1, sort_order: arg2}
のようなリンクをつけてクリックするとサーチ結果でテーブルの中だけ置き換えたいのですが
index.js.erb
console.log('exec index.js'); $(“#users_table”).append(“#{j(render 'users_table', params: params)}");
をこんな感じに書いてもJSとして実行されません
chrome の開発ツールを見ると ajax 自体は発行されてて
リクエストヘッダは text/javascript になっていて
response が
$(“#users_table”).append(“#{j(render 'users_table', params: params)}");
という文字列になっています
リンクをクリックした後ソース表示してみてもこの文字列になっているんですが
どうやってJSとして実行すればいいのでしょうか
remote:true をつけるだけでJSファイルをajaxでリクエストして
戻ってきたJSファイルを実行してくれるというような記事をいくつかみたんですが何か設定が必要だったりするんでしょうか
追記:
index.js.erb の中身を alert('test') におきかえてもポップアップが出ません
Processing by PUsersController#index as JS
は行われていて中身も正しいJSが帰ってきてますがそれをJSとして実行してくれません
ontroller の中に render js: "alert('test');" とかくとポップアップがでるのですが…
Rails 4.2.3 で application.js の中に
//= require jquery_ujs
は確認済み
追記:
index: begin # nil.x render js: "alert('" + msg + "');" rescue => e render js: "alert('" + msg + "');" end end
どうもコントローラの中にかいても正規のルートで render するとポップアップがです
エラーをレスキューした場合にだけ( nil.x でわざとエラーを出した場合だけ) JSとして実行されます
もうわけがわかりません…
もう何日もかかってまったく原因がわからないので
どんなささいなことでもいいので可能性があれば教えてください…
あるいは原因の調べ方や どこでどの値をデバッグしてみればいいのか方針だけでもありがたいです
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。