Получение информации о пути из модели - PullRequest
1 голос
/ 18 января 2011

** Обновление: на самом деле у меня есть довольно веская причина. У меня есть класс уведомлений, который рассылает ссылки пользователям. Поэтому мне нужно иметь там информацию об URL, просто по тем же причинам, что и у внешнего интерфейса;)

как мне получить маршруты "path", когда я в модели?

users_path(xxx)
app.users_path(xxx)

И то, и другое не удается

Ответы [ 2 ]

3 голосов
/ 18 января 2011

Это плохая идея, вам не нужно требовать информацию о маршрутах внутри модели.

Если вы это сделаете, то определенно что-то не так, попробуйте использовать помощников вместо вещей внутри модели.

Или вы можете предоставить более подробную информацию о проблеме, и мы могли бы дать определенный ответ.

Обновление - Предполагая, что вы отправляете электронные письма своим пользователям, вы можете напрямую использовать помощники по URL в представлениях почтовой программы (вместо того, чтобы делать это в модели). Просто не забудьте использовать user_url (xxx) вместо user_path (xxx) . Для этого вам также может потребоваться установить action_mailer.default_url_options [: host].

2 голосов
/ 18 января 2011

Хотя я согласен с тем, что в большинстве случаев этого следует избегать, и часто есть лучший способ сделать это, довольно недальновидно сказать, что никогда не требуется.На самом деле, есть ряд обстоятельств, когда я бы сказал, что это вполне приемлемо (например, создание отчетов csv, в которых должна быть ссылка на страницу объекта на сайте).

В любом случае Rails делаетэто довольно легко сделать.Просто убедитесь, что вы продумали, стоит ли это делать в первую очередь!Просто включите в свой класс помощников по Rails ...

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