将deep_merge更改为Utils.deep_merge_hashes

时间:2015-04-28 09:45:42

标签: ruby jekyll octopress

我使用Octopress生成静态html页面。我尝试使用this指令更改日期的语言(它是德语,但我们只需要代码)。当我将date.rb从这个德国网站复制到我的octopress / plugins时,我遇到以下错误:Liquid Exception:未定义的方法`deep_merge'用于#在blog / path / to / post / index.html。

如果我在date.rb注释掉这个部分,我可以生成网站:

def to_liquid
  date_format = self.site.config['date_format']
  self.data.deep_merge({
    "title"             => self.data['title'] || self.slug.split('-').select {|w| w.capitalize! || w }.join(' '),
    "url"               => self.url,
    "date"              => self.date,
    # Monkey patch
    "date_formatted"    => format_date(self.date, date_format),
    "updated_formatted" => self.data.has_key?('updated') ? format_date(self.data['updated'], date_format) : nil,
    "id"                => self.id,
    "categories"        => self.categories,
    "next"              => self.next,
    "previous"          => self.previous,
    "tags"              => self.tags,
    "content"           => self.content })
end

然后更改博客/档案中日期的语言,但不更改帖子中的日期。我找到了一个类似的problem,它已经通过改变deep_merge→Utils.deep_merge_hashes来解决。所以我理解我需要在上面提到的代码中完全相同。我认为它应该很容易,但由于我不了解Ruby,我还没有成功。你能告诉我在这种情况下我应该如何使用Utils.deep_merge_hashes而不是deep_merge?

1 个答案:

答案 0 :(得分:0)

这有效(ruby 2.1.1 - Jekyll 2.5.3)

ruby-2.0.0-p451