我有帖子的列表(页面#home),点击我打开的列表和评论(帖子#show),我声明变量@feed_items。在评论的最后,我有simple_form的新评论(评论#create)。问题:如果在提交按钮上发生错误,我需要使用带有错误的注释和表单呈现现有列表。 我正在尝试评论#create:
if @comment.save
...
else
render 'posts/show'
end
但是在这种情况下,变量@feed_items没有被声明,因为方法帖子#show没有被调用。当我尝试编写redirect_to时,我看到带有注释的列表但没有错误消息。怎么做?
答案 0 :(得分:1)
这是人们常犯的错误。 render
方法仅选择要显示的视图,redirect_to
方法再次执行重定向操作。
如果有错误,请调用render
方法选择要显示的视图,并且必须手动分配此视图需要处理的所有实例变量。
检查导轨指南中的Section 2.3.2
:http://guides.rubyonrails.org/layouts_and_rendering.html
在你的情况下,它会是这样的:
if @comment.save
...
else
# Populate the @feed_items in here again
render 'posts/show'
end