gpt4 book ai didi

ruby-on-rails - 将@object 传递给 rails 部分渲染

转载 作者:数据小太阳 更新时间:2023-10-29 06:30:30 26 4
gpt4 key购买 nike

我有一部分:

'配置文件/_show.html.erb'

包含如下代码

<%= @profile.fullname %>

我正在尝试渲染局部但我不确定如何传递@profile。我尝试使用本地,但显然它在我的局部设置了“配置文件”而不是“@profile”。

<%= render :partial => 'profiles/show', :locals => {:profile => @app.profile} %>

有没有办法将它作为@object 而不是object 传递,或者它是这样设计的吗?

最佳答案

为什么在局部变量中使用实例变量(名称以“@”开头的变量,例如:@object)如此重要?这不是一个好习惯。在 partials 中使用实例变量会使控制流复杂化,这会导致错误并使 partials 的重用更加困难。这blog post更深入地解释了这个问题。

实际上,您有两个选择。第一个选项是建议的解决方案。

  1. 将所有实例变量更改为局部变量,并通过 render 的 locals 参数将其传递给局部变量。

  2. 在部分渲染之前设置实例变量。部分可以访问 Controller 设置的所有实例变量。

同样,局部变量中的实例变量是错误的。你永远不应该仅仅因为你的局部变量已经被编写来使用它们而设置实例变量。改为重写部分内容。

关于ruby-on-rails - 将@object 传递给 rails 部分渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1850905/

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