我为LineItem
创建了一个部分内容,在我的情况下,会发出<tr>
个<td>
个limited
。这很好用,花花公子。
我想要做的是在不同的地方使用相同的部分。原始视图有足够的空间,因此显示每个单元格都可以。但是另一个(侧边栏),空间更小,我只想显示5个单元格中的两个。
那么问题是,实现这个的正确方法是什么?除非另有说明,否则我希望“完整”版本是默认版本,并且只有在传递参数时才使用限制版本。
目前我可能会使用将局部传递给局部的功能,并检查是否定义了参数<tr>
<td><%= line_item.quantity %>×</td>
<td><%= line_item.product.title %></td>
<td class="item_price"><%= number_to_currency(line_item.total_price, unit: '€') %></td>
<% unless defined? limited %>
<td class="remove_item"><%= button_to 'Remove', line_item, method: :delete %></td>
<% end %>
</tr>
,如果是,则跳过最后N个单元格。我是在正确的轨道上,如果是的话,我应该使用什么样的变量(我可以使用符号吗?)
当前_line_item.html.erb(我有些不满意)
{{1}}
编辑:添加了当前版本。
答案 0 :(得分:1)
是的,你走在正确的轨道上。你可以做点什么
<%= render 'partial_name', limited: true %>
然后在部分:
<% limited ||= false %> # More explicit as to what default value is
<tr>
<td><%= line_item.quantity %>×</td>
<td><%= line_item.product.title %></td>
<td class="item_price"><%= number_to_currency(line_item.total_price, unit: '€') %></td>
<% unless limited %>
<td class="remove_item"><%= button_to 'Remove', line_item, method: :delete %></td>
<% end %>
</tr>