синтаксическая ошибка, неожиданный tCONSTANT, ожидание ')' - PullRequest
0 голосов
/ 18 июня 2020

Я написал метод и получил ошибку. Это мой код:

def workouts_number
  @workout_block = BlockWorkout.all
  @number = Hash.new(0)

  @workout_block.each do |record|
    @current_workout_block = BlockWorkout.group(:workout_id).order(COUNT(workout_id) DESC).limit(5)
    @name = @current_workout_block['block_name']
    @number[@name] += 1
  end

  render :json => {data: {unprocessed: @workout_block, processed: @number}}
end

Затем я получил это сообщение об ошибке:

{
  "status": 500,
  "error": "Internal Server Error",
  "exception": "#<SyntaxError: /home/gabriel_rc/Área de Trabalho/Atlas/atlas-academia-back/app/controllers/workouts_controller.rb:146: syntax error, unexpected tCONSTANT, expecting ')'\n...d).order(COUNT(workout_id) DESC).limit(5)\n...                           ^~~~\n/home/gabriel_rc/Área de Trabalho/Atlas/atlas-academia-back/app/controllers/workouts_controller.rb:174: syntax error, unexpected end, expecting end-of-input>",
  "traces": {
    "Application Trace": [
      {
        "exception_object_id": 27087800,
        "id": 0,
        "trace": "app/controllers/workouts_controller.rb:146: syntax error, unexpected tCONSTANT, expecting ')'"
      },

В нем говорится, что произошла синтаксическая ошибка в строке 146. Строка 146 выглядит следующим образом:

@current_workout_block = BlockWorkout.group(:workout_id).order(COUNT(workout_id) DESC).limit(5)

Как решить эту проблему?

1 Ответ

1 голос
/ 18 июня 2020

Просто добавьте кавычки вокруг фрагмента SQL, чтобы он обрабатывался как строка Ruby.

@current_workout_block = BlockWorkout.group(:workout_id).order("COUNT(workout_id) DESC").limit(5)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...