Ruby on rails 如何在Rails 5中删除助手文件?

Ruby on rails 如何在Rails 5中删除助手文件?,ruby-on-rails,Ruby On Rails,我是Rails新手,在使用Rails g controller Users生成用户控制器后,我决定删除app/helpers/Users.rb中生成的帮助程序(即rm),因为我意识到我不需要它。把一堆空文件放在我身边似乎很难看。这破坏了我的应用程序。当我尝试访问我的中的任何页面或运行测试时,会出现以下错误:找不到UsersHelper,应在helpers/users\u helper.rb中定义它 我通过手动重新创建该文件修复了它,但如何摆脱它?这是不受支持的吗 根据人们提出的问题进行编辑 助

我是Rails新手,在使用
Rails g controller Users
生成用户控制器后,我决定删除
app/helpers/Users.rb中生成的帮助程序(即
rm
),因为我意识到我不需要它。把一堆空文件放在我身边似乎很难看。这破坏了我的应用程序。当我尝试访问我的中的任何页面或运行测试时,会出现以下错误:
找不到UsersHelper,应在helpers/users\u helper.rb中定义它

我通过手动重新创建该文件修复了它,但如何摆脱它?这是不受支持的吗


根据人们提出的问题进行编辑


助手似乎没有在任何地方被显式引用,
grep-Ri UsersHelper.
只返回模块本身和bootsnap缓存文件的结果。与
:helper'user'
或'helpers/users'相同的命令不返回任何内容。

如果Rails告诉您它找不到UsersHelper,则表示该模块在项目中的其他地方被调用。当页面显示“找不到”消息时,它还应该指出包含UsersHelper的有问题的文件(与测试输出相同)。如果删除此引用,则删除模块(或目录)应该不会有问题。

我大致解决了这个问题,但我仍然不理解它


我正在使用一些url帮助器函数:
user\u url(:id)
new\u user\u url
,这些函数显然需要帮助器存在,即使它们没有在那里明确定义。如果有人能更深入地解释发生了什么事,我将不胜感激。

你使用脚手架了吗?当我为模型使用生成器时,没有创建辅助对象。是的,我也是。当我做
rails g controller…
这是什么版本的rails?对不起,你们都说得对,这是一个controller提供的。我来解决这个问题@詹姆斯米拉尼是5.2.0。我遇到了同样的问题。显然,ThingieController依赖于“水下”ThingieHelper的存在。我猜这是从美国某地传来的。这是一个有趣的发现。请看我更新的问题,该模块在任何地方都没有显式引用。不过,它似乎被url函数隐式引用(请参见我的答案)。
\u url
不会调用UsersHelper,除非您已经用自己的自定义方法覆盖了本机Rails url帮助器方法。如果您想继续尝试调试,如果您可以使用代码示例和堆栈跟踪编辑问题,这将非常有用。也许,您可以将此问题提取到一个原始rails应用程序,我们可以从github或其他地方克隆它。因为这个问题(以及它的解决方案)目前还没有敲响警钟。