私は Rails と JavaScript が初めてで、jQuery 関数をイベントに登録するのに苦労しています。私は別のプロジェクトでそれを行いましたが、これを1行ずつコピーするところですが、まだ機能していません。これが私のコードです
まず、プッシャージェムを gemfile に追加しました
gem 'pusher'
次に、bundle install を実行しました
次に、これらの行を environment.rb に追加しました
require 'pusher'
Pusher.app_id = **
Pusher.key = **
Pusher.secret = **
次に、プッシャー スクリプトを application.html の先頭に追加しました。
application.html.erb
<head>
<meta charset="utf-8" />
<!-- Uncomment to make IE8 render like IE7 -->
<!-- <meta http-equiv="X-UA-Compatible" content="IE=7" /> -->
<!-- Set the viewport width to device width for mobile -->
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title><%= content_for?(:title) ? yield(:title) : "Untitled" %></title>
<%= stylesheet_link_tag "application" %>
<%= javascript_include_tag "vendor/custom.modernizr" %>
<%= javascript_include_tag "http://js.pusher.com/2.0/pusher.min.js" %>
<%= javascript_include_tag "application" %>
<%= csrf_meta_tags %>
</head>
次に、application.js に pusher.js ファイルを含めました。
//= require pusher
そして最後に、これが私の pusher.js ファイルです
var pusher = new Pusher('MY KEY');
var myChannel = pusher.subscribe('job-channel');
$(document).ready(function() {
myChannel.bind('job-added', function(data) {
addJob(data)
});
function addJob(data) {
var new_job = "<h1> TEST </h1>";
$('.job_list').append(new_job)
}
});
このようにコントローラーでイベントをアクティブにします
Pusher['job-channel'].trigger('job-added', @job.to_json)
それは機能しませんが、Pushers イベント クリエーターを使用しても機能しません。
デバッガーを介して jQuery を実行しようとしましたが、$(document).ready とプッシャーは完全に機能しているように見えますがaddJob
、イベントをアクティブにすると実行されません。