Ruby on rails 在RubyonRails中,渲染';共享/评分';,:本地人=>;{:score=>;@foo.score}不会通过本地考试吗?
也许我错过了什么 似乎要渲染局部,我们可以使用Ruby on rails 在RubyonRails中,渲染';共享/评分';,:本地人=>;{:score=>;@foo.score}不会通过本地考试吗?,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,也许我错过了什么 似乎要渲染局部,我们可以使用 render 'shared/score' 但下一节将讨论当地人 render :partial => 'bar', :locals => { :score => @foo.score } 但是第一种形式呢 render 'shared/score', :locals => { :score => @foo.score } 上面的这条线不会通过当地人,为什么 看来这是必须的 render :partial =&g
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
上查看它们的源代码
如果您看到,如果第一个参数不是散列,它将默认为分部的名称,并将第二个参数作为局部变量传递
问题是,它希望第二个参数中的本地人:locals=>{:score=>@foo.score}
一开始可能看起来不错,但实际上你想要的是:{:score=>@foo.score}
原因是它将\u render\u partial
方法的:locals
选项设置为第二个参数。因此,如果你按照自己的方式来做,它实际上看起来像:
:locals => {:locals => {:score=>@foo.score}}
这没有多大意义。code>呈现“共享/score”时,{:score=>@foo.score}有效吗?