nil的未定义方法`strftime':NilClass(NoMethodError)

时间:2015-07-03 07:14:14

标签: ruby erb

我正在使用ERB并创建此DEMO页面。 我试过执行erb this_file.html 我收到了上面提到的错误。

这是我的代码

require 'erb'

def get_items()
   ['bread', 'milk', 'eggs', 'spam']
end

def get_template()
%{
    <DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <title>Shopping List for <%= @date.strftime('%A, %d %B %Y') %></title>
    </head>
    <body>
             <h1>Shopping List for <%= @date.strftime('%A, %d %B %Y') %></h1>
            <p>You need to buy:</p>
            <ul>
              <% for @item in @items %>
                <li><%= h(@item) %></li>
              <% end %>
            </ul>
    </body>
    </html>
 }
 end

class ShoppingList
    include ERB::Util
    attr_accessor :items, :template, :date

     def initialize(items, template, date=Time.now)
        @date = date
        @items = items
        @template = template
     end

    def render()
       ERB.new(@template).result(binding)
    end 

    def save(file)
        File.open(file, "w+") do |f|
       f.write(render)
    end
  end

end

list = ShoppingList.new(get_items, get_template)
list.save(File.join(ENV['HOME'], 'list.html'))

0 个答案:

没有答案
相关问题