提问人:Gabriel Ribeiro Carneiro 提问时间:6/18/2020 最后编辑:Holger JustGabriel Ribeiro Carneiro 更新时间:6/18/2020 访问量:549
语法错误,意外的 tCONSTANT,期望 ')'
syntax error, unexpected tCONSTANT, expecting ')'
问:
我编写了一个方法,但收到了一个错误。这是我的代码:
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赞
Holger Just
6/18/2020
#1
只需在 SQL 代码段周围添加引号,以便 Ruby 将其作为字符串处理即可。
@current_workout_block = BlockWorkout.group(:workout_id).order("COUNT(workout_id) DESC").limit(5)
评论
0赞
OrlandoMartinez
6/18/2020
首选单引号与 Rubocop 匹配
评论
order