我有一个嵌入文档的项目模型。 目前,以下comments_controller代码将成功向项目添加注释。 但是,如果将注释文档推送到项目上的注释数组失败,我将不知道这一点。
#this does work, but i do not know if the push fails
def create
comment = Comment.new(:text => params[:text])
@item.comments << comment
render :text => comment
end
我想要这样的东西,但是@item.comments <<评论不返回真或假:
#this does not work
def create
comment = Comment.new(:text => params[:text])
if @item.comments << comment
render :text => comment
else
render :text => 'oh no'
end
end
当文档推送失败时,它也不会引发异常:
#this does not work
def create
begin
comment = Comment.new(:text => params[:text])
@item.comments << comment
render :text => comment
rescue Exception => e
render :text => 'oh no'
end
end
谢谢!
您必须设置注释的项目,然后保留它。 如果保存顺利,comment.save 将返回 true,否则返回 false。 您可以根据需要处理这两种情况。
def create
comment = Comment.new(:text => params[:text])
comment.item = @item
if comment.save
render :text => "yay"
else
render :text => "oh no"
end
end