неинициализированная константа Tilt :: CompileSite :: Ошибка Нокогири в sinatra / haml - PullRequest
0 голосов
/ 22 октября 2010

У меня есть двухстрочный скрипт, который прекрасно работает в ruby. Я переместил его в хамл и получил ошибку

NameError at / uninitialized constant Tilt::CompileSite::Nokogiri

код хамла:

      %td
        - @doc = Nokogiri::XML(File.open(file))
        = @doc.xpath("//testsuite").each_with_index {|node,index| "#{index+1}. #{node.attributes["name"].value}<BR>" }

Есть идеи, как я могу заставить это работать?

с использованием ниже на Win XP SP3

  • ruby ​​1.8.7 (2010-08-16, уровень обновления 302) [i386-mingw32]
  • нокогири (1.4.3.1 x86-mingw32)
  • Синатра (1,0)
  • тонкий (1,2,7 x86-mswin32)

Ответы [ 2 ]

1 голос
/ 29 октября 2010

Попробуйте это:

%td
  - @doc = ::Nokogiri::XML(File.open(file))
  = @doc.xpath("//testsuite").each_with_index {|node,index| "#{index+1}. #{node.attributes["name"].value}<BR>" }
0 голосов
/ 26 октября 2010

до сих пор не знаю, почему происходит ошибка, но я решил ее с помощью функции, определенной в файле sinatra и вызывающей ее в файле haml = get_testsuite(file)

def get_testsuite (file)

  @doc = Nokogiri::XML(File.open(file))
  output = Array.new
  @doc.xpath("//testsuite").each_with_index {|node,index|
    output << "#{index+1}. #{node.attributes["name"].value}<BR>"
  }
  return output
end
...