gpt4 book ai didi

ruby-on-rails - 在 Ruby on Rails 中,render 'shared/score' , :locals => { :score => @foo. score } 会不会在本地通过?

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

也许我在 http://guides.rubyonrails.org/layouts_and_rendering.html#using-partials 中遗漏了一些东西

似乎要渲染部分,我们可以使用

render 'shared/score'

但下一节将讨论本地人
render :partial => 'bar', :locals => { :score => @foo.score }

但是第一种形式呢?
render 'shared/score', :locals => { :score => @foo.score }

上面那条线在本地不会通过,为什么?

似乎必须如此
render :partial => 'shared/score', :locals => { :score => @foo.score }

但这是为什么呢? (我使用的是 Rails 3.0.6)

最佳答案

你实际上想要:

render 'shared/score', { :score => @foo.score }

解释

您可以在 render 上查看其源代码。 .

http://api.rubyonrails.org/classes/ActionView/Rendering.html#method-i-render

如果您看到如果第一个参数不是散列,它将默认为部分名称,并将第二个参数作为本地参数传递。

问题是它想要第二个参数中的本地人。 :locals => {:score => @foo.score}乍一看似乎是对的, 但你真的想要 : {:score=> @foo.score} .

这样做的原因是它设置了 :locals _render_partial 的选项方法到第二个参数。所以如果你按照自己的方式去做,它实际上看起来像:
:locals => {:locals => {:score=>@foo.score}}

这没有多大意义。

关于ruby-on-rails - 在 Ruby on Rails 中,render 'shared/score' , :locals => { :score => @foo. score } 会不会在本地通过?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5638852/

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