2011-10-13 3 views
2

사용자가 장바구니에 코스를 추가 할 수있는 기능이 있습니다. 모든 것이 잘 작동합니다 : 사용자가 "장바구니에 추가"아이콘을 클릭하면 장바구니에 line_item 개체가 생성되고 carts_controller는 카트의 업데이트 된 html을로드하는 AJAX 요청을 실행합니다. 여기 코드는 다음과 같습니다Heroku가 아약스 호출을로드하지 않습니다.

def create 
    @user = current_user 
    @cart = @user.cart 
    @line_item = @cart.line_items.build(params[:line_item]) 

    respond_to do |format| 
     if @line_item.save 
     format.html { redirect_to(root_path, :notice => 'Course added to cart') } 
     format.js { @current_item = @line_item } 
     format.xml { render :xml => @line_item, :status => :created, :location => @line_item } 

format.js 다음 create.js.erb 파일을 참조 : 이것은 새로 삽입 LINE_ITEM가 들어 일부이든 @cart에 끌어

$("#cart").html("<%= escape_javascript(render(@cart)) %>"); 

합니다.

그러나 이것을 heroku에 업로드하면이 코드가 손상됩니다. '장바구니에 추가'아이콘을 클릭하면 line_item이 생성되지만 장바구니가 표시되기 전에 페이지가 새로 고쳐 져야합니다.

이런 종류의 AJAX 호출을 인식하기 전에 내가 영웅 내에서해야 할 일이 있습니까?

감사합니다.

+0

아니, 당신이 특정 아무것도 필요하지 않습니다 ('거짓'이었다) ur AJAX는 Heroku에서 작업합니다. prototype.js를 파일에 올바르게 포함 시키십시오. prototype.js는 ur 어플리케이션 폴더에 있습니다. – Salil

답변

0

자산을 미리 컴파일해야 할 수도 있습니다.

run RAILS_ENV=production bundle exec rake assets:precompile. 그러면 공용 디렉토리에 assests 폴더가 만들어집니다. 그들 모두를 추가하고 heroku에게 저지하십시오.

나를 위해
1

솔루션은 변경했다 :

설정/환경/production.rb을

config.assets.compile = true