2011-08-06 34 views
2

我試圖使用url_for擴展名,所以我的應用程序可以準確地找到我的靜態資產(也嘗試過靜態資產擴展,但它也抱怨同樣的問題)。爲什麼我的應用程序中未定義「url_for」?

問題是這樣的:

undefined method `url_for' for Sinatra::Raffler:Class (NoMethodError) 

現在,我已經得到了需要的模塊上市,按照該url_for自述:

require 'rubygems' 
require 'sinatra/base' 
require 'data_mapper' 
require 'lib/authorization' 
require 'pony' 
gem 'emk-sinatra-url-for' 
require 'sinatra/url_for' 

但我仍然得到NoM​​ethodError當我嘗試打電話給url_for

我已經嘗試了幾個關於助手的不同的事情。首先,我有一個授權擴展一個助手塊:

helpers do 
    include Sinatra::Authorization 
end 

所以,我想我可以包括在那裏url_for助手:

helpers do 
    include Sinatra::Authorization 
    include Sinatra::UrlForHelper 
end 

但是這並沒有解決問題,所以我剛剛添加的行:

helpers Sinatra::UrlForHelper 

之後,初始助手做阻止,但仍然沒有解決。

回答

2

如果你繼承西納特拉:: Base的,你需要包括助手明確:

class Foobar < Sinatra::Base 
    helpers Sinatra::UrlForHelper 
end 
+0

我試了幾件事情參考包括傭工明確。仍然沒有骰子。 (請參閱上面的編輯瞭解詳情)。謝謝你的想法! – YuKagi

+0

我不知道我是如何設法讓它起作用的,但我做到了,而且我正在使用您向我展示的線條,因此您可以得到答案。 ;)我仍然堅持試圖獲得我的靜態資產,但我會發布另一個問題。再次感謝! – YuKagi

相關問題