Это похоже на вопрос новичка, но простой ответ ускользает от меня. Мне нужно вызвать link_to
в методе ActionController
, чтобы выдать ссылку HTML. ActionView :: Helpers :: UrlHelper.link_to
вызывает url_for
, но при этом вызывается версия AV-модуля вместо версии контроллера. Мне удалось заставить это сделать то, что я задумал, поместив
#FIXME there must be a better way to mixin link_to
alias_method :self_url_for, :url_for
include ActionView::Helpers::UrlHelper
alias_method :url_for, :self_url_for
в контроллер. Но я все еще не уверен, почему это работает именно так. Может ли кто-нибудь объяснить объем метода и скрытие, которое здесь происходит? Какой лучший способ смешать link_to
(или, как правило, включить только некоторые методы из модуля), чтобы я мог вызвать его в контроллере (генерация строки flash со ссылкой - это случай использования)
Пожалуйста, никаких лекций о MVC - во всяком случае, link_to
должен быть в модуле, отдельном от url_for
. Судя по количеству шума, многие люди сталкиваются с этой, казалось бы, тривиальной загвоздкой и в конечном итоге тратят час, делая это «методом Rails», хотя на самом деле все, что нужно, - это минутный взлом, чтобы мое приложение работало сейчас. Есть ли "путь рельсов" возможно, сделать это с помощью помощников? Или лучший рубиновый способ?