Доступ к Rails маршрутам RESTful в модели

Чтобы очистить код, мне бы хотелось получить доступ к помощникам RESTful в моей модели Rails. Что-то вроде:

users_path

и др.

Спасибо.

Ответ 1

class ActiveRecord::Base
 include ActionController::UrlWriter

 host = case ENV['RAILS_ENV']
 when "production"
   "yourlivedomain.com"
 when "development"
   "localhost:3000"
 end
 default_url_options[:host] = host
end

Ответ 2

Просто, чтобы повторно открыть это: для всех рельсов 3+ пользователи, включая UrlWriter, не будут работать, поскольку они устарели. Что работает, но это:

include Rails.application.routes.url_helpers

Надеюсь, что это поможет любому, кто наткнулся на это, как я.

Ответ 3

Почему вы хотите получить доступ к маршрутам в своей модели? Это является нарушением шаблона Model/View/Controller (MVC), который лежит в основе Rails. Модели не должны иметь никаких знаний о маршрутах, которые являются контроллером и рассматривают проблему. Модели должны быть автономными от пользовательского интерфейса.

Если вы сказали нам, чего вы пытаетесь достичь, тогда мы сможем предложить лучший подход.