Это похоже на вопрос о нобе, но простой ответ ускользает от меня. Мне нужно позвонить link_to
в методе ActionController
, чтобы выслать ссылку HTML. ActionView::Helpers::UrlHelper.link_to
вызывает url_for
, но это вызывает версию AV-модуля вместо контроллера. Мне удалось заставить это сделать то, что я намеревался, поставивКак смешивать и вызывать link_to от контроллера в Rails?
#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
(или, как правило, включать только некоторые методы из модуля), поэтому я могу назвать его в контроллере (генерация флэш-строки со ссылкой является прецедентом.)
Пожалуйста, нет лекции о MVC - во всяком случае, link_to
должен быть в модуле отдельно от url_for
. Судя по количеству шума на этом, многие люди сталкиваются с этой кажущейся тривиальной хваткой и в конечном итоге тратят впустую час, делая это «Rails way», когда действительно то, что нужно, - это минутный взлом, чтобы заставить мое приложение работать сейчас. Есть ли способ «Rails» сделать это с помощью помощников? Или лучший рубиновый путь?
ок спасибо, что будет работать. – tribalvibes
@template для меня в моем контроллере. Любая идея почему? –
@TylerCollier - возможно, это изменилось с помощью рельсов 3? он работал над 2 – house9