为什么不写这个文件在ruby中

时间:2016-01-18 10:26:50

标签: ruby

红宝石很新。我试图看看我是否可以使用ruby编写html。非常基本的脚本。没有错误,但没有任何内容写入文件,我无法弄清楚原因。如果我在puts之后使用mypage我可以看到写入控制台的html

    #!/usr/bin/env ruby

class MyPage
  attr_accessor :para, :startbuff


      def initialize

        @para = "<p>"
        @startbuff = "<!DOCTYPE HTML>

<html>

<head>
    <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />
    <title>Your Website</title>
</head>

<body>

</body>

</html>"


      end

      def makePage
        puts @startbuff
      end

  end

    mypage = MyPage.new

    File.open("/Users/me/Desktop/MyRubyHTML.html", "w+").each { |file|  
      puts mypage.makePage
    }

2 个答案:

答案 0 :(得分:3)

puts输出到控制台,您需要这样做:

def makepage
  @startbuff
end

这将返回@startbuff中的所有内容,然后返回:

File.open("/Users/me/Desktop/MyRubyHTML.html", "w+") { |file|  file.write(mypage.makepage) }

答案 1 :(得分:1)

您是否注意到,您实际上从未使用您的文件句柄?难怪,没有任何东西写入文件。尝试

 file.puts(....)