我将在我的视图中呈现haml或html表(index.html.haml)。
我有一个字符串数组,其值为true或false,如下所示:
str=['true', 'false', 'true', 'true', 'false']
字符串数组中有5个元素,字符串数组中的元素基于用户的输入是动态的。每个元素都意味着
['display_color','display_size','display_shape', 'display_owner','display_price']
,
如果为true,表格将在列中显示该属性。
因此,基于“true-false”字符串数组,我将使用以下规则呈现haml或html表:如果值为true,则表将在列中显示正确的“display_ *”,否则,没有在表格中显示该属性。
例如,如果字符串数组包含上述值,则我的表格将包含“display_color
”“display_shape
”和“display_owner
”列,因为它们设置为在数组中为true。
在haml或HTML中,如何编写一个高效代码块来呈现这个动态大小的表?任何一个例子?
答案 0 :(得分:0)
这样的事情应该这样做:
%table
%tbody
-str.each_with_index do |s, i|
-if s == 'true'
%td=array[i]
您可以为标题等应用相同的逻辑......
答案 1 :(得分:-1)
如果您真的担心效率,请不要使用字符串数组来存储布尔值。请注意,这可能不在您的手中,因为它可能来自表单控件,他们所做的最好是整数。
这些列是模型的属性吗? 如果是这样,那么最有效的方法可能是编写一个辅助器来获取数组并确定要显示的属性。否则请跟Dhruva Sagar一起回答。
抱歉,我现在还没有时间为你写一个帮手。今天晚些时候我将编辑一个。