gpt4 book ai didi

ruby-on-rails - 使用 redirect_to 将模型属性传递给 Rails View

转载 作者:行者123 更新时间:2023-12-04 19:24:26 24 4
gpt4 key购买 nike

我正在尝试将模型属性传递给 View ,在我的 Controller 中的操作内部成功将其设置为新值后。但是这个变量在它到达 View 时总是为零,所以我不能用它来有条件地显示内容。我应该补充一点,这个属性不是数据库中的一个字段。我错过了什么/做错了什么?

这是我模型中的代码:

attr_accessor :mode

#getter
def mode
@mode
end

#setter
def mode=(val)
@mode = val
end

...在 Controller 中:
@report.mode = "t"
redirect_to edit_report_path(@report)

...在我看来:
<%= build_report(@report.mode) %>

...但是这个辅助方法永远不会得到我刚刚在 Controller 中设置的变量。它是零。是什么赋予了?显然我在这里遗漏了一些基本的东西,因为这看起来应该很简单。任何见解将不胜感激。
谢谢。

最佳答案

edit_report_path生成 ID 为 @report 的 URL在里面。
redirect_to本质上创建一个全新的请求,并转到该 URL。当它到达 edit ,它所拥有的只是 ID。通常这很好 - 它查找对象并继续前进,但当然它不会具有您设置的非数据库字段。

有几种方法可以解决这个问题。您可以使用 :render 进入编辑页面 - 然后@report 将设置该字段。

@report.mode = "t"
render :action => edit and return

或者,您可以制作 mode一个数据库字段。

关于ruby-on-rails - 使用 redirect_to 将模型属性传递给 Rails View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/670197/

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