我正在尝试使用url_for扩展程序,以便我的应用程序可以准确找到我的静态资产(也尝试了静态资产扩展,但它也抱怨同样的问题)。
问题在于:
undefined method `url_for' for Sinatra::Raffler:Class (NoMethodError)
现在,根据url_for README:
,我已经列出了所需的模块require 'rubygems'
require 'sinatra/base'
require 'data_mapper'
require 'lib/authorization'
require 'pony'
gem 'emk-sinatra-url-for'
require 'sinatra/url_for'
但是当我尝试调用url_for
时,我仍然得到NoMethodError关于助手,我尝试过几个不同的事情。首先,我有一个授权扩展的帮助程序块:
helpers do
include Sinatra::Authorization
end
所以,我认为我可以在那里包含url_for助手:
helpers do
include Sinatra::Authorization
include Sinatra::UrlForHelper
end
但是这并没有解决问题,所以我只是添加了一行:
helpers Sinatra::UrlForHelper
之后,初始助手会阻止,但仍无法解决问题。
答案 0 :(得分:2)
如果您是Sinatra :: Base的子类,则需要明确包含帮助程序:
class Foobar < Sinatra::Base
helpers Sinatra::UrlForHelper
end