时间循环不起作用

时间:2013-11-25 19:23:04

标签: ruby-on-rails ruby-on-rails-3

我为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为什么?感谢

3 个答案:

答案 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吗?字符串乘法通常起作用。