Rails .each枚举器,第一行有一个特殊情况

时间:2015-03-30 09:49:12

标签: ruby-on-rails-4

我试图让一个枚举器运行在(补充/波旁)前端框架的顶部。该元素是一个tab tabian,它有可重复的元素,但有一个特殊的is-active类标记,它标记为javascript哪一个应该被扩展,以及用户关注的焦点。

我想设计一个枚举器来根据ActiveRecord中有多少条记录来创建标签和填充内容,这样我就可以使用枚举器 - 但是有一种聪明的方法我可以为第一个创建一个干净的异常{ {1}}它输出所以它包含<a>标记?

目前我的黑客黑客在下面:

is-active

对于那个tab_num位来说似乎有一些深刻的东西......我感觉MVC力量的干扰让我把它放在我的视野中......加上这种方式我必须有另一个调查员用于vertical-tabs-container的body元素......

任何人都能更好地了解如何做到这一点?

1 个答案:

答案 0 :(得分:1)

首先,这看起来像属于帮助者或演示者/装饰者。

代码本身可以简化。助手方法:

在您看来:

<div class="vertical-tabs-container">
  <div class="vertical-tabs">
     <%= user_tabs(@user) %>
  </div>

... content goes here...
</div>

然后在你的助手中:

def user_tabs(user)
  output = ""
  user.items.each_with_index do |item,i| 
    output << content_tag(:a, item, :class=>"js-vertical-tab vertical-tab #{i == 0 ? '' : 'is-active'", :rel="tab#{i}", :href="javascript:void(0) 
  end
  output
end

但是,如果您要单独开始添加内容和标签,请查看draper并在item元素上定义标签和正文的方法。