我的应用程序有对象Foo和Bar,每个对象都有相应的模型,视图和控制器。
在为每个对象生成脚手架后,表单部分是标准的。
Foo形态部分看起来像......
<div class="form-inputs row">
<div class="col-md-6">
<%= Foo.donut %>
<%= Foo.bagel %>
<%= Foo.cookie %>
</div>
</div>
<div class="form-inputs row">
<div class="col-md-6">
<%= Foo.biscuit %>
<%= Foo.toast %>
<%= Foo.muffin %>
</div>
</div>
条形部分看起来像......
<div class="form-inputs row">
<div class="col-md-6">
<%= Bar.cat %>
</div>
</div>
<div class="form-inputs row">
<div class="col-md-6">
<%= Bar.dog %>
</div>
</div>
我想要统一格式化,我希望它易于维护,但对象具有不同的属性和不同数量的属性。有没有办法让我干掉我的格式?
答案 0 :(得分:2)
由于您有一个重复的渲染结构,您可以将其提取为局部,然后传递变量进行渲染。所以你的部分看起来像
<div class="form-inputs row">
<div class="col-md-6">
<% vals.each do |val| %>
<%= val %>
<% end %>
</div>
</div>
在主视图中,您传递变量以进行渲染。
<%= render 'home', vals: [Foo.biscuit, Foo.bagel] %>