gpt4 book ai didi

ruby-on-rails - redirect_to 与渲染 - Michael Hartl 的教程

转载 作者:行者123 更新时间:2023-12-03 16:03:22 26 4
gpt4 key购买 nike

阅读 Hartl 的教程,地址为 list 10.42 在 microposts Controller 中,我们有

  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就像
if分支,这样这个变量将由 Controller Action 提供?

最佳答案

@micropost.save返回 false ,表示您的 @micropost无效。换句话说:您有验证错误。这些错误可以通过 @micropost.errors 访问.您应该在 View 中显示它们,以便用户知道他做错了什么。如果您重定向,它将是一个全新的请求和 @micropost.errors将不再可用。这就是他使用渲染的原因。

另一个方面是您需要使用用户输入的值重新填充表单。如果重定向,这些值也将消失。要通过重定向保留错误和发布的值,您必须将它们保存在 session 或其他内容中。仅渲染 View 要容易得多。

关于ruby-on-rails - redirect_to 与渲染 - Michael Hartl 的教程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25308572/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com