Rails 4:我如何干掉我的多个表格部分?

时间:2015-07-01 22:44:30

标签: ruby-on-rails ruby-on-rails-4

我的应用程序有对象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>

我想要统一格式化,我希望它易于维护,但对象具有不同的属性和不同数量的属性。有没有办法让我干掉我的格式?

1 个答案:

答案 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] %>