我为rails应用程序编写了一个简单的帮助器:
def calendar_build
5.times do
whole_cal
end
end
def whole_cal
content_tag(:div, :class => "row") do
small_cal + big_cal
end
end
def small_cal
content_tag(:div, :class => "col-xs-2 token-text") do
concat(content_tag(:p, "15.20"))
end
end
def big_cal
content_tag(:div, :class => "col-xs-10 weite_cal") do
concat(content_tag(:input,"", class: "form-control input-sm pa"))
end
end
如何看待我尝试生成5 whole_cal
:
def calendar_build
5.times do
whole_cal
end
end
但在我看来,这仅显示5
为什么?感谢
答案 0 :(得分:1)
循环的返回值是5.
1.9.3p194 :056 > 5.times {}
=> 5
你应该做
def calendar_build
whole_cals = []
5.times do
whole_cals << whole_cal
end
whole_cals
end
在视图中迭代数组
答案 1 :(得分:0)
您必须将生成的html代码添加到结果变量中,然后将结果作为最后一行放在方法中以返回连接代码
类似的东西:
result = ""
5.times do
result += html code
end
result
并且根据你的html代码,你应该用result.html_safe
替换最后一行答案 2 :(得分:0)
你不能whole_cal*5
吗?字符串乘法通常起作用。