渲染simple_form错误

时间:2012-07-19 19:35:21

标签: ruby-on-rails ruby-on-rails-3 simple-form

我有帖子的列表(页面#home),点击我打开的列表和评论(帖子#show),我声明变量@feed_items。在评论的最后,我有simple_form的新评论(评论#create)。问题:如果在提交按钮上发生错误,我需要使用带有错误的注释和表单呈现现有列表。 我正在尝试评论#create:

if @comment.save
  ...
else
  render 'posts/show'
end

但是在这种情况下,变量@feed_items没有被声明,因为方法帖子#show没有被调用。当我尝试编写redirect_to时,我看到带有注释的列表但没有错误消息。怎么做?

1 个答案:

答案 0 :(得分:1)

这是人们常犯的错误。 render方法仅选择要显示的视图,redirect_to方法再次执行重定向操作。
如果有错误,请调用render方法选择要显示的视图,并且必须手动分配此视图需要处理的所有实例变量。
检查导轨指南中的Section 2.3.2http://guides.rubyonrails.org/layouts_and_rendering.html

在你的情况下,它会是这样的:

if @comment.save
  ...
else
  # Populate the @feed_items in here again
  render 'posts/show'
end