一个方法可用于:Rails中的部分对象?

时间:2010-12-28 02:24:36

标签: ruby-on-rails variables partial

我正在努力建立我的部分并重复一点,但我遇到了问题。以下工作正常:

在视图中:

<%= 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作为:对象传递时会发生什么变化?是否有另一种方法可以用作替代方法来实现部分中的相同功能?

1 个答案:

答案 0 :(得分:1)

您需要将:locals哈希传递给部分

<%= render :partial => 'valve', :locals => {:valve => @valve } %>

然后在你的视图中使用valve。*就像你一样。尽可能避免在partials中使用实例变量。