Ruby on rails RubyonRails:File.delete不删除
我在Rails应用程序中删除文件时遇到问题。在一个按钮上,我调用一个操作Ruby on rails RubyonRails:File.delete不删除,ruby-on-rails,delete-file,Ruby On Rails,Delete File,我在Rails应用程序中删除文件时遇到问题。在一个按钮上,我调用一个操作delete\u results,其中一些文件如果存在,应该被删除。不知何故,该操作中的所有其他内容都正常工作(例如flash:success),但文件没有被删除。在控制台中,线路工作正常。下面是一个小例子: def delete_results File.delete("MyFile.txt") if File.exist?("MyFile.txt") somemodel = Somemodel.first
delete\u results
,其中一些文件如果存在,应该被删除。不知何故,该操作中的所有其他内容都正常工作(例如flash:success
),但文件没有被删除。在控制台中,线路工作正常。下面是一个小例子:
def delete_results
File.delete("MyFile.txt") if File.exist?("MyFile.txt")
somemodel = Somemodel.first
if somemodel.update_attributes(:attr1 => nil, :attr2 => nil)
somemodel.save
flash[:success] = "The results are deleted!"
redirect_to root_path
else
render 'somepage'
end
end
由于该操作只能由管理员调用,因此我想不出任何访问权限问题。应删除的文件位于主应用程序目录中。我的代码中是否有任何重大错误,或者我是否必须包含其他内容
提前谢谢 似乎
重定向\u到删除文件时受到干扰-使用'render'
替代了工作,现在文件确实被删除了:)如果您记录文件,您会得到什么?存在吗?
使用那种方法?(您可以使用put
,Rails.logger
,或者添加调试语句来检查这一点)您能解释一下如何准确地使用put
或Rails.logger
?不知何故,我不能让任何东西出现——即使在我启动服务器的终端上,使用该按钮时也不会发生任何事情……请参阅byebug上的第3节。通过ebug进行设置,查看rails应用程序是否运行delete_,结果如何。听起来第一步是首先验证该方法是否运行。完成后,我建议您检查您的文件.exist?
调用是否返回true
。感谢您的详细解释!:)该方法确实运行,并且该文件确实存在。如果我在byebug环境中调用File.delete
,文件将被删除……没问题:)这很有趣。。。恐怕我帮不了什么忙,只能提些建议。我建议100%验证您在byebug中运行的内容是否完全相同(如果您单步执行代码,该文件是否会被删除,或者仅当您自己运行它时才会被删除?)。第二,尽量孤立问题。看看在问题持续存在时或在它突然起作用之前,您可以剥离多少代码。这有助于你确定哪里出了问题。祝你好运