0

用于命名包含文件名、带有路径的文件名和文件实例的变量的最标准 Ruby 符号系统是什么?这样做的完全明确的方法是:

file_name = "bar.txt"
file_name_with_path = "foo", file_name
file = File.open( file_name_with_path )

但是太长了。:file_name_with_path在方法定义中使用是没有问题的:

def quux( file_name_with_path: "foo/bar.txt" )
  # ...
end

无数次遇到这种情况后,我意识到需要缩短约定。我开始制定个人缩短约定::file_name=> :fn:file_name_with_path=> :fnwp:file总是指一个File实例,:fn从不包括路径,:fnwap手段:file_name_with_absolute_path等。但每个人都必须面对这个,所以我问:这有公共约定吗?更具体地说,Rails 代码是否对此有约定?

4

1 回答 1

2

但是每个人都必须面对这个......

不,不是真的,因为你真的想多了。

只需使用file:, 或filename:。您的文件名是否包含相对路径或绝对路径,或者该路径是否包含目录并不重要,您的代码应该反映这一点。文件的路径只是文件的路径,所有路径都应由您的代码同等对待:它只是打开文件,如果不能打开则引发错误。

您可以使用文件系统实用程序从路径中提取目录和基本名称,它们在任何路径上都可以正常工作,无论目录是否存在,无论路径是绝对路径还是相对路径。没关系。

于 2013-06-13T13:22:43.640 回答