ruby-on-rails – redirect_to与render – Michael Hartl的教程
发布时间:2020-12-17 02:22:57 所属栏目:百科 来源:网络整理
导读:通过Hartl的教程,在清单10.42中我们有微博控制器 def create @micropost = current_user.microposts.build(micropost_params) if @micropost.save flash[:success] = "Micropost created!" redirect_to root_url else @feed_items = [] render 'static_pages
通过Hartl的教程,在清单10.42中我们有微博控制器
def create @micropost = current_user.microposts.build(micropost_params) if @micropost.save flash[:success] = "Micropost created!" redirect_to root_url else @feed_items = [] render 'static_pages/home' end end 所以在else分支中我们需要放空@feed_items因为渲染 我的问题是 – 为什么不使用redirect_to root_url 解决方法
如果@ micropost.save返回false,则表示您的@micropost无效.换句话说:您有验证错误.可以通过@ micropost.errors访问这些错误.您应该在视图中显示它们,以便用户知道他做错了什么.如果你重定向它将是一个全新的请求,@ micropost.errors将不再可用.这就是他使用渲染的原因.
另一个方面是你想要用用户输入的值重新填充表单.如果重定向这些值也将消失.要通过重定向保留错误和发布的值,您必须将它们保存在会话或其他内容中.相反,渲染视图要容易得多. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |