【发布时间】:2011-06-16 08:22:52
【问题描述】:
我正在使用 Ruby on Rails 3.0.7,我想了解如何处理以下情况以避免在加载视图时覆盖 istance 变量 @photo。
在我的视图文件中,我有:
<div>
<%=
render :partial => 'user/photos',
:locals => {
:photo => @photo = 'test_photo1.jpg',
}
%>
</div>
<div>
<%=
render :partial => 'user/photos',
:locals => {
:photo => @photo = 'test_photo2.jpg',
}
%>
</div>
如果我加载上面的视图,我会在输出时出现奇怪的行为。这表明@photo 类在页面加载时被覆盖(被第二个渲染语句)。当然,如果我只进行一次渲染,一切都可以。
如何解决上述问题才能正确传递变量?
注意:我无法更改 @photo 名称。也就是说,两个部分模板必须相同。
我也试过这个版本,只是删除了@photo 变量
<div>
<%=
render :partial => 'user/photos',
:locals => {
:photo => 'test_photo1.jpg',
}
%>
</div>
<div>
<%=
render :partial => 'user/photos',
:locals => {
:photo => 'test_photo2.jpg',
}
%>
</div>
但这仍然行不通。
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3 class partial-views