评论控制器中有以下代码:
def create
current_user.comments.create!(place: current_place, content: params[:content])
render json: encode_result
end
private
def current_place
Place.find(params[:place_id])
end
此代码为当前用户和当前位置创建新评论;如果当前位置不存在,则此代码抛出异常RecordNotFound。我可以为'create'方法发送'place_id'而不是'place',但我需要在创建新评论之前检查是否存在该位置。请告诉我,我的解决方案是好还是有更好的方法?提前致谢。
答案 0 :(得分:1)
这正在做它应该做的事情。你的代码是完美的,因为它现在写的。如果指定的记录不存在,您特别希望暂停执行。您需要做的就是处理异常。
您可以通过rescue_from
将ApplicationController
放在{{1}}中,使用rescue_from
或整个应用程序为整个控制器执行此操作。
答案 1 :(得分:0)
你可以这样做.........
def create
current_user.comments.create!(place: current_place, content: params[:content]) if current_place
render json: encode_result
end
private
def current_place
Place.find(params[:place_id])
end