Rails:App部分在生产中没有正常响应(Heroku)

时间:2016-04-24 04:04:48

标签: ruby-on-rails heroku production partials

我在制作中遇到问题,我的部分代码在heroku上没有按预期工作。

在我的网站上,我有一个测验,其中用户会收到一个问题并给出答案。一旦得到正确或错误的问题,这将为用户提供这样的部分:

<%= 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} %>");

控制器

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

这将呈现部分,位于/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>

在开发过程中,这一切都正常,但在Heroku上有一些问题:

  • 当点击下一步时,它会转到错误的问题(没有从控制器获得新的@routenumber?)。大约30%的时间(看起来真的是随机的)
  • 说奖励已经给予,而不是。 (也约为1/5次)

我的heroku日志。 (heroku尝试加载问题4 3次,而不是去问题5):https://gist.github.com/Mixelated/41e78b7fceae213541d95fad1d3c1908

我已经坚持了一段时间了,似乎无法找出为什么它在Heroku上运行不稳定。非常感谢你的帮助!

1 个答案:

答案 0 :(得分:0)

道歉,如果我错了,但我可以看到你总是将问号编号设置为1,所以下一个将始终将你重定向到第二个问题。是否有可能需要将当前问题编号作为参数发送给控制器,或者以某种方式保留请求中的值?