我正在使用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>
但仍然无效。
答案 0 :(得分:0)
<div>
<%=
render :partial => 'user/photos',
:locals => {:photo = 'test_photo2.jpg'}
%>
</div>
试试看,我不知道为什么你有:photo => @photo = 'test_photo2.jpg'
另见Rails guides on partials。他们真的让你很好地掌握了基础知识。