Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails RubyonRails:File.delete不删除_Ruby On Rails_Delete File - Fatal编程技术网

Ruby on rails RubyonRails:File.delete不删除

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

我在Rails应用程序中删除文件时遇到问题。在一个按钮上,我调用一个操作
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中运行的内容是否完全相同(如果您单步执行代码,该文件是否会被删除,或者仅当您自己运行它时才会被删除?)。第二,尽量孤立问题。看看在问题持续存在时或在它突然起作用之前,您可以剥离多少代码。这有助于你确定哪里出了问题。祝你好运