我对rails.please绝对不熟悉帮助我。
我们可以处理这种异常的可能性有多大。 因为Rails提供多种选择来查找记录。但是有一段时间很难找到最好的一个。
SO
在此控制器中获取针对id
class Api::ShowController < ApplicationController
def get
id = params[:id]
# render json: id and return
if id != nil
@post = Post.find(id)
else
@posts = Post.all
end
render json: @posts
end
end
它显示:
Api中的ActiveRecord :: RecordNotFound :: ShowController#get
错误就在这一行
@post = Post.find(id)
答案 0 :(得分:2)
看起来你必须做一些改变:
def get
if params[:id].present?
@post = Post.find_by(id: params[:id])
if @post.nil?
render json: {
:success => false,
:message => "Post not found."
}
else
render json: @post
end
else
@posts = Post.all
render json: @posts
end
end
注意:对于Rails 4 find_by_id
将来会弃用,因此您必须使用find_by(id: params id)
。链接下方:
答案 1 :(得分:1)
这意味着您的数据库中没有ID为3的Post记录。Post.find()
如果找不到具有请求ID的帖子,则会返回错误。你可以使用Post.find_by_id()
来返回一个null对象,但是你需要处理Post可以做的所有Nil所不能做的事情。
这里有一些你可能希望在这里改变的事情。