Неинициализированный контент при попытке включить ActionController :: UrlWriter в модель - PullRequest
3 голосов
/ 10 июня 2010

Я использую Rails 3 beta 4 и пытаюсь включить ActionController :: UrlWriter в свою модель, что является правильным способом, насколько я могу судить, но я получаю «Неинициализированная константа ActionController :: UrlWriter» ,

Есть идеи, почему это будет? Он двигался по рельсам 3?

Ответы [ 2 ]

3 голосов
/ 10 июня 2010

Сначала я согласен с Зедом. Это не должно быть сделано в модели. Ваши модели не должны знать ни одного http-адреса.

Я делаю то же самое в работе по возвращению. Вот что я делаю:

include ActionDispatch::Routing::UrlFor
include ActionController::PolymorphicRoutes
include Rails.application.routes.url_helpers
default_url_options[:host] = 'example.com'

Тогда вы можете позвонить любому обычному генератору URL.

url_for(object)
page_url(object)

Будет создана ссылка на хосте, определенная как default_url_options[:host]

1 голос
/ 30 октября 2011

Ответы на Можно ли использовать в моделях помощники маршрутизации Rails (т.е. mymodel_path (модель))? довольно хороши

или см.

http://api.rubyonrails.org/classes/ActionDispatch/Routing/UrlFor.html

http://siddharth -ravichandran.com / 2010/11/26 / включая url-helpers-in-models /

В принципе, вы можете сделать что-то подобное в модели:

def url
  Rails.application.routes.url_helpers.download_attachment_path(self)
end

Стоит задуматься, действительно ли это правильный слой.В моем случае это для вложенных файлов, и я хочу сделать attachment.url вместо того, чтобы выписывать много помощников.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...