用于命名包含文件名,包含路径和文件实例的文件名的变量的最标准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代码是否具有此约定?
答案 0 :(得分:1)
但是每个人都必须面对这个......
不,不是真的,因为你真的过分思考了这一点。
只需使用file:
或filename:
即可。 无关紧要您的文件名是包含相对路径还是绝对路径,或者路径是否包含目录,您的代码应该反映这一点。文件的路径只是文件的路径,所有路径都应该由您的代码完全相同:它只是打开文件,如果不能,则会引发错误。
您可以使用文件系统实用程序从路径中提取目录和基本名称,无论目录是否存在,它们都可以在任何路径上正常工作,无论路径是否为绝对路径或亲戚。这没关系。