我有这种布局,它有几个“盒子”,每个视图都有不同的内容。剩下的就是所有人都一样。
此框位于我的布局中,如= yield :box_1
,= yield :box_2
等。在我的观看中,我使用以下内容填充它们:
- content_for :box_1 do
= render 'partials/box_1', :product => @product
- content_for :box_2 do
= render 'partials/box_2', :product => @product
,等等。
问题是我在每个视图中都在上面写这些行,而且它看起来绝对不干净。什么是更好的选择来完成这个?
答案 0 :(得分:2)
我认为帮手将是您可以做的第一件也是最简单的事情。
def content_for_boxes(product)
content_for(:box_1) { render 'partials/box_1', :product => product }
content_for(:box_2) { render 'partials/box_2', :product => product }
end
然后你可以把这个助手放到你的布局中。
- content_for_boxes(@product) if defined?(@product)
然后,只有拥有产品才能呈现内容。但是你也可以直接在那里进行渲染。