2016-04-24 4 views
0

Ich habe ein Problem in der Produktion, Code in meinem Teil funktioniert nicht wie erwartet auf Heroku.Schienen: App teilweise reagiert nicht normal in der Produktion (Heroku)

In meiner Website habe ich ein Quiz, in dem die Benutzer eine Frage mit Antworten erhalten. Bei immer macht die Frage richtig oder falsch dies eine teilweise für die Benutzer wie folgt aus:

<%= link_to "Answer1", correct_answer_courses_path,:remote => true,:class=>"btn btn-warning" %> 

correct_answer.js.erb

$("#correct_answer").html("<%= j render partial: "beginnercourse/correct", locals: {questionnumber: @questionnumber, coursetitle: @coursetitle, routenumber: @routenumber} %>"); 

Der Controller

def beginnercourse_q1 
    def correct_answer 
    @questionnumber = 1 
    @routenumber = @questionnumber + 1 
    @coursetitle = "beginnerscourse" 
    respond_to do |format|    
     format.js 
    end   
    end 

    def false_answer 
    @questionnumber = 1 
    @routenumber = @questionnumber + 1 
    @coursetitle = "beginnerscourse" 
    respond_to do |format|    
     format.js 
    end   
    end  
end 

Und dies wird die Render teilweise, befindet sich in /beginnercourse/_correct.html.erb

<div> 
    <h2> Correct!</h2> 

     <% if $current_course.send("claimedreward#{questionnumber}") == false%> 
     <h2><span class = "yellowtext">Well Done, + 100 tradepoints</span></h2> 
     <% current_user.update_attributes(tradepoints: (current_user.tradepoints + 100)) %> 
     <% $current_course.update_attributes("claimedreward#{questionnumber}" => true) %> 

     <%= link_to "Next", "/courses/#{coursetitle}_q#{routenumber}",class:"btn btn-warning" %> 
     <%= render 'layouts/coursefooter' %> 


     <% else %> 
     <h2><span class = "redtext">Points were already rewarded</span></h2> 

     <%= link_to "Next", "/courses/#{coursetitle}_q#{routenumber}",class:"btn btn-warning" %> 
     <%= render 'layouts/coursefooter' %> 
     <% end %> 
    </div> 
dieses

In Entwicklung alles funktioniert normal, aber auf Heroku gibt es ein paar Probleme:

  • Als nächstes klicken, um es in der falschen Frage geht (nicht die neuen @routenumber bekommen? von der Steuerung). etwa 30% der Zeiten (scheint wirklich zufällig)
  • Sagen, dass die Belohnung bereits gegeben wurde, während es nicht war. (auch etwa 1/5 der Zeiten)

Mein heroku log. (Heroku versucht, Frage 3 mal zu laden, anstatt zu Frage 5 zu gehen): https://gist.github.com/Mixelated/41e78b7fceae213541d95fad1d3c1908

Ich bin seit einer Weile darauf fest und kann nicht herausfinden, warum es auf Heroku nicht stabil läuft. Ich würde Ihre Hilfe sehr schätzen!

+0

Habe gerade einen Fehler gefunden bei: '$ (" # correct_answer "). Html (" <% = j rendern teilweise: "anfängerkurs/korrekt", einheimische: {fragennummer: @fragenummer, coursetitle: @coursetitle, routenummer: @routenumber}%> ");', der Teilname 'anfängercourse/correct' sollte in einfache Anführungszeichen anstatt in doppelte Anführungszeichen gesetzt werden! –

+0

Hey danke, änderte es aber immer noch das gleiche Problem – M1xelated

+0

Könnte sein, weil Sie Instanzvariablen anstelle von lokalen Variablen verwenden. Entfernen Sie das @ -Zeichen. –

Antwort

0

Entschuldigung, wenn ich falsch liege, aber ich kann sehen, dass Sie die Fragezahl immer zuerst auf 1 setzen, also wird der nächste Sie immer auf die zweite Frage umleiten. Ist es möglich, dass Sie die aktuelle Frage Nummer als Parameter an den Controller senden müssen oder den Wert irgendwie über die Anfragen behalten?

Verwandte Themen