这似乎是一个菜鸟问题,但简单的答案让我望而却步。我需要调用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
(或者通常只包含来自模块的一些方法),这样我就可以在控制器中调用它(用链接生成闪存字符串是用例。)
拜托,没有关于 MVC 的讲座——如果有的话,link_to
应该在与url_for
. 从这方面的噪音来看,很多人遇到了这个看似微不足道的障碍,最终浪费了一个小时以“Rails 方式”进行,而真正想要的是让我的应用程序现在运行的一分钟破解。也许有一种“Rails 方式”可以用助手来做到这一点?还是更好的红宝石方式?