2013-10-01 2 views
1

Я новичок в посреднике и всех возможностях, которые у меня есть. Я хочу сделать смертельно простой скрипт haml, который работает как индексная страница, в которой перечислены все мои типы страниц для более быстрой навигации внутри проекта.NoMethodError при вызове meta_data из объекта Ресурс Middleman

Вот код:

--- 
layout: no_layout 
--- 
- resources = sitemap.resources.sort {|a,b| a.url <=> b.url} 

- pages = Array.new 

- resources.each do |resource| 
    - metadata = resource.metadata[:page] 
    - if resource.mime_type.match(/^text\/html/) && metadata["title"] 
     - element = Hash.new 
     - element["url"] = resource.url  
     - element["title"] = metadata["title"] 
     - element["desc"] = metadata["desc"] 

     - if element["url"].start_with?('/') 
      - element["url"].slice!(0) 
     - pages.push(element) 

%h1 Page elements 
- if pages.length > 0 
    %ul 
     - pages.each do |page| 
      %li 
       %a{:href => page["url"]} #{page["title"]} 
       - if page["desc"] 
        %br 
        = page["desc"] 
- else 
    No pages found. 

К сожалению, Посредник генерирует следующее сообщение об ошибке:

NoMethodError at/
undefined method `mime_type' for #<Middleman::Sitemap::Resource:0x000000069df020> 

Но Посредник документация говорит, что объект ресурсов содержит метод и у меня есть некоторый код примера что также работает именно так.

Может ли кто-нибудь сказать мне, что я делаю неправильно?

Заранее спасибо

ответ

0

Я думаю, что вы хотите Resource#content_type вместо этого.

$ bundle exec middleman console 
> sitemap.resources[2].content_type 
=> "text/html; charset=utf-8" 
+0

Это принеси мне "NoMethodError в/неопределенный метод' content_type»для # <Посредник :: Карта сайта :: Ресурс: 0x000000053fd928>" ошибка, а также. Я думаю, что что-то с моей установкой Windows неверно. Хотя у меня есть рабочий образец на моей машине, который использует mime_type –

+0

Возможно, обновите посредника; в моем примере используется 3.1.6. – sam

+0

Вы правы. Моя версия 3.0.13. После обновления до 3.1.6, content_type работает для меня сейчас. mime_type все еще нет. Благодаря! –

 Смежные вопросы

  • Нет связанных вопросов^_^