gpt4 book ai didi

ruby-on-rails - 保存后重定向到索引而不是显示

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

我想在保存模型后重定向到模型索引 View 。

def create
@test = Test.new(params[:test])

respond_to do |format|
if @test.save
format.html { redirect_to @test, notice: 'test was successfully created.' }
else
format.html { render action: "new" }
end
end
end

我已经尝试过

    format.html { render action: "index", notice: 'Test was successfully created.' }

但我在/app/views/tests/index.html.erb 中收到以下错误 -

   undefined method `each' for nil:NilClass

知道出了什么问题吗?

最佳答案

render action: "index"

不会重定向,重定向和渲染不同,渲染只会使用当前可用的变量渲染 View 。当使用重定向时, Controller 的索引函数将运行,然后 View 将从那里呈现。

您收到错误是因为您的索引 View 需要一些数组,但您没有提供给它,因为您只是渲染“索引”并且没有 View 需要的变量。

你可以通过两种方式做到这一点

1-使用渲染操作:“index”

在渲染之前让 View 可以使用它需要的所有变量,例如,它可能需要一个 @posts 变量,它用于显示帖子列表,因此您需要在渲染之前在创建操作中获取帖子

@posts = Post.find(:all)

2-不渲染并执行redirect_to

您不是渲染“index”,而是重定向到索引操作,该操作将负责执行索引 View 所需的必要操作

redirect_to action: "index"

关于ruby-on-rails - 保存后重定向到索引而不是显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10439724/

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