2011-08-19 65 views
0

我有这个布局,它有几个“盒子”,每个视图都有不同的内容。其余的对所有人都是一样的。如何在轨道中组织这种布局?

这盒是在我的布局像= 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 

等。

问题是我在每一个视图上面写了上面的这些行,它绝对不看干。完成这个更好的选择是什么?

回答

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) 

然后,内容只应该呈现,如果你有一个产品。但是你也可以直接在那里做渲染。