Почему «url_for» не определено в моем приложении? - PullRequest
2 голосов
/ 06 августа 2011

Я пытаюсь использовать расширение 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' 

Но явсе еще получаю ошибку NoMethodError, когда я пытаюсь вызвать url_for

Я пробовал несколько разных вещей в отношении помощников.Во-первых, у меня есть блок помощников для расширения авторизации:

helpers do
    include Sinatra::Authorization
end

Итак, я подумал, что мог бы включить туда помощника url_for:

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

Но это не помоглопроблема, поэтому я просто добавил строку:

 helpers Sinatra::UrlForHelper

после этого начальные помощники блокируют, но по-прежнему нет разрешения.

1 Ответ

2 голосов
/ 06 августа 2011

Если вы создаете подклассы Sinatra :: Base, вам нужно явно указать хелперы:

class Foobar < Sinatra::Base
  helpers Sinatra::UrlForHelper
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...