我正在使用控制器来显示一个在javascript中加载3D模型的页面。我似乎遇到的问题是,当我尝试让javascript加载3D模型文件ruby on rails而不是尝试解释它,使用文件名作为ID。
控制器
def show
@design = Design.find(params[:id])
end
错误日志
在2014-06-12 20:11:30 -0700开始GET“/ designs / slotted_disk”为127.0.0.1由DesignsController处理#show as /
参数:{“id”=>“slotted_disk”}
用户加载(0.2ms)SELECT“users”。* FROM“users”WHERE“users”。“remember_token”='...'LIMIT 1
设计负载(0.1ms)SELECT“designs”。* FROM“designs”WHERE“designs”。“id”=? ORDER BY created_at DESC LIMIT 1 [[“id”,“slotted_disk”]]
在3毫秒内找不到404
ActiveRecord :: RecordNotFound(无法找到id = slotted_disk的Design):app / controllers / designs_controller.rb:19:in“show”
答案 0 :(得分:0)
您似乎想要使用find_by
。
def show
@design = Design.find_by name: params[:id]
end
find
始终假定id
列找到了它。 find_by
让您找到使用其他列的内容。
答案 1 :(得分:0)
在您的控制台上试用此命令
rake routes
我的猜测是您的路线配置为
get devices/{id}
映射到DeviceController
的{{1}}操作
因此,当您执行Show
时,它会将devices/slotted_disk
视为slotted_disk
参数,并且查找失败。
您需要按id
配置要查找的路由。尝试在device_type