我正在构建的博客上有一个评论表。
博客文章很长,因此表单位于页面底部的屏幕外。
如果评论未通过验证,则用户将返回页面顶部,但错误消息会显示在表单所在的位置。
发生这种情况时,我希望浏览器关注评论部分,以便用户可以看到验证错误消息。
这是我的 comments_controller 的创建操作:
def create
@article = Article.find(params[:article_id])
@comment = @article.comments.build(params[:comment])
if @comment.save
redirect_to article_path(@article), notice: "Thanks for your comment"
else
# is there anyway to pass an id (like #comments) to this render call??
render 'articles/show'
end
end
如您所见,render 'articles/show'
如果验证失败,我会打电话。我希望能够做这样的事情:
render 'articles/show', :anchor => '#comments'
在理想情况下,上面的代码会渲染article#show,并将视口焦点设置在评论部分。我知道我可以在使用时通过锚点link_to
,但我可以这样做render
吗?
这样的事情可能吗,还是我需要使用 Ajax 解决方案?