Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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 ruby方法file或file_create方法返回并不执行任何操作_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails ruby方法file或file_create方法返回并不执行任何操作

Ruby on rails ruby方法file或file_create方法返回并不执行任何操作,ruby-on-rails,ruby,Ruby On Rails,Ruby,在我的rails应用程序和rails控制台中,我键入了 2.0.0p0:045>文件'file.txt',%q{contents=['test']} 它返回这个 Rake::FileTask foobar.txt=>[] 我也打字 创建“tesfile.txt”并返回 Rake::FileCreationTaskTestFile.txt=>[] 然后我在终端上键入ls,不知道为什么没有创建text.txt或testfile.txt文件 我还创建了一个文件rubytest.rb,其中包含文件'fi

在我的rails应用程序和rails控制台中,我键入了

2.0.0p0:045>文件'file.txt',%q{contents=['test']} 它返回这个

Rake::FileTask foobar.txt=>[]

我也打字

创建“tesfile.txt”并返回

Rake::FileCreationTaskTestFile.txt=>[]

然后我在终端上键入ls,不知道为什么没有创建text.txt或testfile.txt文件

我还创建了一个文件rubytest.rb,其中包含文件'file.txt',%q{contents=['test']}和文件'tesfile.txt'

键入rails r rubytest.rb,则不返回任何内容。我在终端上运行ls,看不到file.txt或testfile.txt

我运行rails 3.2.12和ruby 2.0.0p0

我到处找了,但还是找不到。 感谢您的帮助

试试这个:

File.open("file.txt", "w") do |fh|
  fh.puts "test"
end
我认为您无意中发现了rake scroll to File Tasks方法,这不是您想要的


还要记住,rake、rails和ruby都是不同的东西rake是一个用ruby编写的make clone,通常在应用程序中,你不会使用rake提供的方法。

你到底想实现什么?对不起,我是个新手。我只想在我的ruby应用程序中创建一个文件.rb。你看过ruby类的文档了吗?它是File的基类,解释了new、open、read和write等方法。是的,这很有效,我将进一步阅读您提供的链接。但是我不明白为什么rake file方法或file_create方法在rails控制台和ruby r命令中不起作用。rake不是ruby,它是用ruby编写的DSL。它不起作用可能是好事,因为您将学会直接使用Ruby正确创建文件。现在忽略Rake,直到您了解它的用途以及如何使用它。而且,尽管听起来可能有些刺耳,但如果您不理解Ruby,您甚至不应该尝试使用Rails进行编写。Rails使用了很多Ruby的深层魔法,在您对Ruby有了很好的了解之前,这些魔法对您来说毫无意义。但是,为什么Rails new-m file.rb能够运行这个rake方法呢?我猜您的Gemfile指定了rake,所以bundler已经加载了它。它在Gemfile.lock中有rake的行吗。当我用rails new-m file.rb和rake“file method”创建一个新的rails应用程序时,它可以运行rake方法,但一旦创建了rake方法,我就不能在rails应用程序中运行或从中运行它。我知道不建议这样做,但我只是想了解这里发生了什么