2014-09-27 51 views
0

我在Rails中有一个房间预订项目。我在其中一个页面中遇到了问题,我在其中修复并推送了更改。解决这个问题后,我的主页面,新的预订页面出现了一个错误,只发生在Heroku上,而不是在本地主机上。 (很抱歉,但出了点问题。)Rails应用程序在本地服务器上工作,但最重要的页面不会在Heroku上工作

我看不到它宣称我有的错误。为了解决这个问题,我将Heroku回滚到主页正在工作的状态,而我之前修复的页面不是:主页再次工作。然后,我将Heroku中的git克隆到我的本地机器中,然后重新推送它,但没有发生任何变化,但错误再次出现!我用Heroku Bash确认服务器上的文件实际上是我推送的文件。

我真的很感谢一些帮助!

两个从Heroku的日志中的错误:

2014-09-27T21:53:41.455914+00:00 app[web.1]: ActionView::Template::Error (/app/app/views/reservations/new.html.erb:16: syntax error, unexpected keyword_do, expecting keyword_end 
2014-09-27T21:53:41.455712+00:00 app[web.1]: /app/app/views/reservations/new.html.erb:28: syntax error, unexpected keyword_ensure, expecting end-of-input): 

应用程序/视图/预订/ new.html.erb

<div class="row"> 
    <div class="col-md-3"></div> 
    <div class="col-md-6"> 
    <div class="panel panel-primary radius"> 
     <div class="panel-heading"> 
     <h1 class="panel-title text-center" id="reservations_title"><%= t "new_reservation.title" %>: 
      <span class="spinner" 
       style="display: none; position: relative; top:4px; left:<%= params[:locale]=="en" ? "2px;" : "4px;" %>" 
       id="titleSpinner"> 
      </span> 
     </h1> 
     </div> 
     <div class="panel-body"> 
     <div class="col-md-12"> 

      <%= form_for ([@user, @reservation]), remote: true do |f| %> 
       <%= render(:partial => 'form_datetime', locals: { f: f }) %> 
       <%= render(:partial => 'shared/notifications', locals: { f: f }) %> 
       <%= render(:partial => 'form_rooms', locals: { f: f }) %> 
      <% end %> 

     </div> 
     </div> 
    </div> 
    </div> 
</div> 
<%= javascript_include_tag 'reservations' %> 

form_datetime

form_rooms

<div id="room_container"> 
    <div class="form-group"> 
    <%= submit_tag "Show Rooms", :name => "show_rooms", :class => "btn btn-info radius btn-block", :id => "show_rooms" %> 
    </div> 

    <% if(!params[:res_date].blank? && !params[:res_time].blank?) %> 
     <div class="form-group"> 
     <% rooms_arr = available_rooms_array(params[:res_date],params[:res_time]) %> 
     <% if rooms_arr.size == 0 %> 
      <div class="alert alert-warning radius"> 
       <span class="glyphicon glyphicon-exclamation-sign"></span> 
       <%= t "new_reservation.no_rooms" %> 
      </div> 
     <% else %> 

      <% rooms_arr.each do |room| %> 
       <button value="<%= room.name %>" 
         name="room_name" 
         class="btn btn-primary radius btn-block"> 
        <span class="spinner" 
         style="display: none; position: relative; top:5px; left:<%= params[:locale]=="en" ? "8px;" : "11px;" %>" 
         id="buttonSpinner<%= room.name %>"> 
        </span> 
        <% if room.contains_grand_piano %> 
        <span class="glyphicon glyphicon-star-empty"></span> 
        <% end %> 
        <%= room.name %> 
       </button> 
      <% end %> 
     <% end %> 
     </div> 
    <% end %> 
</div> 

通知

<div class="form-group" id="notifications_container"> 
    <% if !flash.now.blank? %> 
     <% if !flash[:notice].blank? %> 
      <div class="alert alert-success radius"> 
      <span class="glyphicon glyphicon-ok-sign"></span> 
      <%= flash.now[:notice].html_safe %> 
      </div> 
     <% end %> 
     <% if !flash[:warning].blank? %> 
      <div class="alert alert-warning radius"> 
      <span class="glyphicon glyphicon-exclamation-sign"></span> 
      <%= flash.now[:warning].html_safe %> 
      </div> 
     <% end %> 
     <% if !flash.now[:error].blank? %> 
      <div class="alert alert-danger radius"> 
      <span class="glyphicon glyphicon-remove-sign"></span> 
      <%= flash.now[:error].html_safe %> 
      </div> 
     <% end %> 
    <% end %> 
</div> 

编辑: 我也试图做一个新的Heroku应用程序 - 错误也仍然存在与此应用程序。我怎样才能找出为什么在Heroku的某个回滚中它确实起作用?

回答

0

我怀疑你的bug与资产管道在生产模式下处理Javascript的方式有关。我建议在本地生产,看看你是否可以重新创建你的问题。

运行类似以下内容:

rake assets:precompile RAILS_ENV=production 
SECRET_KEY_BASE=not_really_random RDS_DB_NAME=myapp_development rails server -e production -p 4000' 

然后连接到本地主机:4000,看看你是否已经重建的问题。

0

我发现问题了!

的问题是有多余的空间的form_for后:

<%= form_for ([@user, @reservation]), remote: true do |f| %> 

它是如此难以找到,特别是因为它的工作在本地服务器上!

相关问题