在ruby中创建一个Tempfile时,它会传递INSERT INTO [mps] ([Title],[Des],UpdateNumber) VALUES(@title,@des,(select (max(isnull(UpdateNumber, 0))+1) from mps))
,然后它会在结尾附加一个随机字符串。
来自文档: http://ruby-doc.org/stdlib-1.9.3/libdoc/tempfile/rdoc/Tempfile.html
basename
您可以看到它以file = Tempfile.new('hello')
file.path # => something like: "/tmp/hello2843-8392-92849382--0"
开头,然后添加hello
。虽然每次创建实例时此结尾都会改变。
这使得(至少对我来说)难以在其保存的目录中查找。
问题:
是否有任何方法(如2843-8392-92849382--0
)可以在实例上运行以获取file.fullName
,以便在保存的目录中查找它?
思想:
您可以使用hello2843-8392-92849382--0
并对其进行解析,但这似乎过分了。
答案 0 :(得分:9)
基本上你要求:
File.basename(file.path)
很少有理由需要将其暴露为方法,但如果您愿意,可以将Tempfile
子类化为将其添加到:
class SuperTempfile < Tempfile
def basename
File.basename(path)
end
end