sql - 语法错误,意外的 tCONSTANT,期待 ')'
问题描述
我写了一个方法,我收到一个错误。这是我的代码:
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)
我怎么解决这个问题 ?
解决方案
只需在您的 SQL 片段周围添加引号,以便 Ruby 将其作为字符串处理。
@current_workout_block = BlockWorkout.group(:workout_id).order("COUNT(workout_id) DESC").limit(5)
推荐阅读
- javascript - fireEvent.Blur() 在我的自定义输入组件中不起作用
- ant - 有没有办法在 ant build 中逃避“@”
- python-3.x - 求解器如何根据距离矩阵确定源点和终点
- javascript - 如何从用户那里获取上传的图像文件并将其绘制在画布上?
- swiftui - 从列表中删除项目时索引不更新
- flutter - 我正在尝试缓存我的 http 调用请求,但是我的自定义缓存管理器我的基类不采用或支持默认设置值
- django - 如何将数据从 javascript-datatable 发送到 Django 并在重定向到其他 url 后,人们说 ajax 但我不知道如何很好地使用它
- java - Maven 无法识别完整的文件路径
- python - 十六进制到 pem 文件
- iframe - 拒绝加载.. 资源必须列在 web_accessible_resources 清单键中,才能被扩展之外的页面加载。已列出