我正在努力建立我的部分并重复一点,但我遇到了问题。以下工作正常:
在视图中:
<%= render 'valve' %>
部分:
<% if @valve.length > 1 %>
<h3>Valve kit</h3>
<%= render 'not_enough' %>
<% else if @valve.length < 1 %>
<h3>Valve kit</h3>
我将会有很多套件,所以我不想为每个套件变量重复这个套件,我想做这样的事情:
<%= render :partial => 'valve', :object => @valve %>
<% if valve.length > 1 %>
<h3>Valve kit</h3>
<%= render 'not_enough' %>
<% else if valve.length < 1 %>
<h3>Valve kit</h3>
但这打破了valve.length方法。那么,当我将@valve作为:对象传递时会发生什么变化?是否有另一种方法可以用作替代方法来实现部分中的相同功能?
答案 0 :(得分:1)
您需要将:locals哈希传递给部分
<%= render :partial => 'valve', :locals => {:valve => @valve } %>
然后在你的视图中使用valve。*就像你一样。尽可能避免在partials中使用实例变量。