неожиданный keyword_do_block

#ruby-on-rails

#ruby-on-rails

Вопрос:

Следующий фрагмент отлично работает с моими Rails 3.0.3:

 class Lab1pd1amController < ApplicationController
  def index
     respond_to do |format|
     @students = Student.find_by_sql("SELECT * FROM students WHERE students.session = 'AM' and students.pd1 = 'Science' ORDER BY lname ASC")
      format.html # index.html.erb
      format.xml  { render :xml => @students }
    end
  end

 def show
   @students = Student.find(params[:all])

   respond_to do |format|
      format.html # show.html.erb
      format.xml  { render :xml => @student }
    end
 end
end
  

Но когда я развертываю с использованием Heroku, я получаю следующее сообщение об ошибке синтаксиса (в журналах Heroku):

/app/.bundle/gems/ruby/1.9.1/gems/activesupport-3 .0.3/lib/active_support/dependencies.rb:239:в `require’: /app/app/controllers/lab1pd1am_controller.rb:1: синтаксическая ошибка, неожиданный keyword_do_block, ожидание ‘;’или ‘n’ (синтаксическая ошибка)

Ответ №1:

Я бы убедился, что что-то не проникло туда до того, как вы сделали git push heroku master .

Также может потребоваться некоторая очистка.

 class Lab1pd1amController < ApplicationController
  def index
    @students = Student.where(:session => "AM", :pd1 => "Science").order("lname ASC")

     respond_to do |format|         
      format.html # index.html.erb
      format.xml  { render :xml => @students }
    end
  end

 def show
   @student = Student.find(params[:all])

   respond_to do |format|
      format.html # show.html.erb
      format.xml  { render :xml => @student }
    end
 end
end
  

Вы также можете поменять respond_to местами ‘s для respond_to/respond_with комбо, чтобы очистить его немного больше.

Комментарии:

1. Эй, Адам, после выполнения ваших инструкций, это то, что я получил: