某些标准的Ruby on Rails文件的首字母大写,例如Gemfile,Gemfile.lock和Guardfile。是否有关于此的约定,或者我可以为我认为重要的任何文件执行此操作吗?
答案 0 :(得分:1)
大写文件不是Rails应用程序源文件,它们是某些工具所需的文件。例如,Gemfile
和Gemfile.lock
适用于bundler
,Guardfile
适用于guard
。这些工具都不随Rails一起提供,并且所有这些工具都可以在没有Rails的情况下使用。
你必须坚持使用Rails约定,因为Rails约定不仅仅是约定,它们还有一些性能问题。
例如,Rails会强制您将模型MyModel
放入文件app/models/my_model.rb
中。在使用此类之前,Rails不会加载此文件。 Rails假定类MyModel
在名为my_model.rb
的文件中定义,并且位于一个名为autoload_paths
的特殊目录中,因此Rails会在这些目录中搜索此特定文件并加载它。如果没有这样的文件,或者该文件中没有定义类MyModel
,则会引发错误。使用这种延迟加载机制,Rails可以将那些从未使用过的(可能是遗留的)类保存到内存中。