我确实认为这是一个 Rails 问题,而且是一个很好的问题。
Rails 中的正常范例,其中“全局”的东西进入application.*
了资产管道有点混乱,因为 application.js 真的充当清单,而不是公共文件。当然你可以在那里添加东西,甚至application.js.coffee
为你的通用代码创建一个。我决定创建一个名为common.js.coffee
(在另一种情况下shared.js.coffee
为 )的文件,在我的情况下,该文件由require_tree .
指令自动处理。
(根据@jonathan-tran 的评论更新)在某些情况下,您可能只希望在文档上调用的方法为所有页面准备好——例如,我使用它来使日期选择器可用于任何视图中的任何字段。相反,如果您希望方法(实际上是全局函数)可调用,则需要将咖啡脚本函数导出到变量,例如通过附加到window
对象。您可以在共享文件中执行这两项操作。
$(document).ready ->
确实,如果您使用生成器,您最终会得到每个控制器的文件,如果没有专门的代码,则会在编译资产时导致一系列冗余语句。因此,只需摆脱您不使用的那些。但是遵循分离特定于页面的功能的模式对我来说很有意义并且效果很好——我知道在哪里可以找到东西,随着项目的发展,这很有价值。
我在 Rails 中学到的另一条规则:顺其自然。如果这就是 Rails 的做法,那可能是一个好方法。他们确实考虑过这些事情。不要修复有效的方法:-)