2012-02-22 3 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 

은 그럼 수동으로 전체 페이지를 새로 고침 브라우저의 새로 고침 버튼 (파이어 폭스 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에서 작동했습니다.

관련 문제