Как я могу получить доступ к UrlWriter url / path генераторам из метода класса модели? - PullRequest
2 голосов
/ 25 июня 2010

Я хочу создать URL-адрес из метода класса модели. Я делал это раньше из метода экземпляра, просто включив ActionController::UrlWriter - я попытался включить это в область определения экземпляра, а также в область определения класса, но безрезультатно.

class Foo < ActiveRecord::Base
  # only works for instance methods
  # include ActionController::UrlWriter

  class << self
    # results in this error: undefined method `default_url_options' for Class:Class
    # include ActionController::UrlWriter
    def my_method
      return user_sprockets_url(:thingy => 'blue')
    end
  end    
end

Ответы [ 2 ]

3 голосов
/ 25 июня 2010
class ModelURL
  include ActionController::UrlWriter
end

class User
  @url_generator = ModelURL.new
  class << self
    def admin_path
      @url_generator.send :admin_path
    end
  end
end

ruby-1.9.1-p378?> User.admin_path

=> "/admin"
1 голос
/ 25 июня 2010

Сладкий!

немного рефакторинга ..

class ModelURL
  include ActionController::UrlWriter
  @@singleton = ModelURL.new
  class << self
    def singleton
      @@singleton
    end
  end
end

использование ...

ModelURL::singleton.send :user_sprockets_url, :thingy => 'blue', :host => DOMAIN
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...