繁体   English   中英

Ruby on Rails控制器执行异常

[英]Ruby on Rails controller performing unexpectedly

我正在使用控制器来显示一个页面,该页面在javascript中加载了3D模型。 我似乎遇到的问题是,当我尝试让JavaScript在Rails上加载3D模型文件ruby时,尝试使用文件名作为ID来解释它。

控制器

def show
    @design = Design.find(params[:id])
end

错误日志

在2014-06-12 20:11:30 -0700开始为127.0.0.1获取GET“ / designs / slotted_disk”,由DesignsController#show处理为/

参数:{“ id” =>“ slotted_disk”}

用户负载(0.2毫秒)选择“用户”。*从“用户”位置“用户”。“ remember_token” ='...'限制1

设计负载(0.1ms)选择“设计”。*从“设计”中选择“设计”。“ id” =? ORDER BY created_at DESC LIMIT 1 [[“ id”,“ slotted_disk”]]

在3毫秒内完成404找不到

ActiveRecord :: RecordNotFound(找不到编号为= slotted_disk的设计):app / controllers / designs_controller.rb:19:在“ show”中

看来您想使用find_by

def show
  @design = Design.find_by name: params[:id]
end

find始终以id列为前提。 find_by让我们使用另一列查找。

在控制台上尝试此命令

rake routes

我的猜测是您的路线配置为

get devices/{id}映射到DeviceControllerShow操作

因此,当您执行devices/slotted_disk ,它会将slotted_disk视为id参数,并且查找失败。

您需要配置一个通过device_type查找的路由。 尝试将其添加到您的routes.rb

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM