2012-02-22 6 views
0

ここでは、Michael Hartlの有名なRuby on Railsチュートリアル(Rails 3.2)に従っています。 「11.2.5 Ajaxを使用した作業フォローボタン」のセクションは、ローカルマシンでは動作しますが、Herokuでは動作しません。 [フォロー]ボタンまたは[アンフォロー]ボタンをクリックしたときに、ページ上の何も更新されませんでした。私は実際にログから呼び出されたアクションを見ることができますが。AJAXを使用しているボタンがHerokuで機能しない

2012-02-22T04:05:17+00:00 app[web.1]: Started POST "/relationships" for 67.188.133.121 at 2012-02-22 04:05:17 +0000 
2012-02-22T04:05:17+00:00 app[web.1]: Processing by RelationshipsController#create as JS 
2012-02-22T04:05:17+00:00 app[web.1]: Parameters: {"utf8"=>"✓", "authenticity_token"=>"nsYrHM0aLlEGoI19Zv8hImEmbfWPZ+gSy5xmgAV+V60=", "relationship"=>{"followed_id"=>"15"}, "commit"=>"Follow"} 
2012-02-22T04:05:17+00:00 app[web.1]: Redirected to https://etl-rails32-tut-sample-app.herokuapp.com/users/15 
2012-02-22T04:05:17+00:00 app[web.1]: cache: [POST /relationships] invalidate, pass 
2012-02-22T04:05:17+00:00 app[web.1]: Completed 302 Found in 66ms (ActiveRecord: 61.2ms) 
2012-02-22T04:05:17+00:00 heroku[router]: POST etl-rails32-tut-sample-app.herokuapp.com/relationships dyno=web.1 queue=0 wait=0ms service=75ms status=302 bytes=123 

は、その後、私は手動でページ全体をリフレッシュするために、ブラウザ(FireFoxの7.0)の更新ボタンをクリックしなければならなかった、とボタンが正しく結果に切り替えることでしょう。

ファイル、アプリ/ビュー/レイアウト/ application.html.erbは、以下の通りである:

<!DOCTYPE html> 
<html> 
    <head> 
    <title><%= full_title(yield(:title)) %></title> 
    <%= render 'layouts/stylesheets' %> 
    <%= javascript_include_tag "application" %> 
    <%= csrf_meta_tags %> 
    </head> 
    <body> 
    <div class="container"> 
     <%= render 'layouts/header' %> 
     <section class="round"> 
     <% flash.each do |key, value| %> 
      <%= content_tag(:div, value, class: "flash #{key}") %> 
     <% end %> 
     <%= yield %> 
     </section> 
     <%= render 'layouts/footer' %> 
     <%= debug(params) if Rails.env.development? %> 
    </div> 
    </body> 
</html> 

答えて

0

私はHerokuのにアップロードする私のコードとボタンの作業を終えました。私もこれでn00bです。私のapplication.html.erbはあなたのものにかなり近いです。私はあなたのサイトを見ました(私のものとは非常に異なっています)。私は同じ問題を抱えています。ログに差異が表示されます(行ヘッダーが削除されました)。

Started POST "/relationships" for 1.1.9.1 at 2012-04-10 21:06:47 +0000 
Processing by RelationshipsController#create as JS 
Parameters: {"utf8"=>"✓", "authenticity_token"=>"jF6cuJakhooP/fIdfAhIfhy+Djgox3jukyJbm86UkVU=", "relationship"=>{"followed_id"=>"2"}, "commit"=>"Follow"} 
Rendered users/_unfollow.html.erb (3.8ms) 
Rendered relationships/create.js.erb (7.0ms) 
Completed 200 OK in 36ms (Views: 4.2ms | ActiveRecord: 24.1ms) 
cache: [POST /relationships] invalidate, pass 
POST strong-stone-3754.herokuapp.com/relationships dyno=web.1 queue=0 wait=0ms service=93ms status=200 bytes=584 

リダイレクト中にマインがレンダリングされます。

重要であるかどうかわかりませんが、私はあなたのページと私の両方から.jsを探し出し、それらにwcを実行しました。彼らは少し異なっています。

18 1559 120293 mine.js 
18 1343 99603 yours.js 

おそらく問題はview/relationships/create.js.erbにありますか?

$("#follow_form").html("<%= escape_javascript(render('users/unfollow')) %>") 
$("#followers").html('<%= @user.followers.count %>') 

それともRelationshipsContollerの作成および破棄の方法は、以下のAJAX要求に応答している必要があります

respond_to do |format| 
    format.html { redirect_to @user } 
    format.js 
end 
0

私はあなたが見つかったと答えたが、これは私のためにそれを固定している可能性が遅く広告かもしれません。

コーヒーレール宝石を使用している場合は、コーヒー柵宝石をアセットグループ外に移動します。私はjquery-rails gemのすぐ下に置いた(それほど大したことはないと思う)が、それを資産グループの外に置いた後、herokuで働いた。

関連する問題