Ruby Rake任务赢得';不要在我的sinatra应用程序中运行

Ruby Rake任务赢得';不要在我的sinatra应用程序中运行,ruby,ubuntu,sinatra,rake,require,Ruby,Ubuntu,Sinatra,Rake,Require,我有一个带有Rakefile.rake和server.rb文件的sinatra应用程序。在server.rb文件中,我有 get '/' do rake :test end 该应用程序已加载,但当我加载localhost:4567/并为sinatra应用程序显示未定义的方法“rake”时崩溃。我尝试使用 require '/home/user/project/Rakefile' 我也尝试了Rakefile.rake,但都给了我一个错误:“require不能加载这样的文件。”我正在使

我有一个带有Rakefile.rake和server.rb文件的sinatra应用程序。在server.rb文件中,我有

get '/' do
    rake :test
end
该应用程序已加载,但当我加载localhost:4567/并为sinatra应用程序显示未定义的方法“rake”时崩溃。我尝试使用

require '/home/user/project/Rakefile' 
我也尝试了Rakefile.rake,但都给了我一个错误:“require不能加载这样的文件。”我正在使用Ubuntu

我不知道为什么sinatra不能加载rakefile,但当我在终端中运行rake测试时,它就可以工作了


任何帮助都会很好。

“rake:test”不起作用,但“rake-test”起作用。你知道这是为什么吗?@mgtemp因为你从命令行用一个单词作为参数调用rake,而不是用Ruby符号。如果我想在get之外运行rake:test怎么办?或是在任何一个问题得到解决之前?rake:找不到测试。我会一直使用系统“rake测试”吗?为什么同一项目中的其他.rb文件可以使用rake:test,但sinatra one不能使用?@mgtemp
rake
在您的示例中是一个方法调用。如果你的Sinatra应用程序没有加载该方法,那么它如何调用该方法?@mgtemp你提出的问题超出了原始问题的范围。如果您想
要求“rake”
并在应用程序中调用rake方法,那么您当然可以;虽然这是相关的,但这是一个完全不同的问题。看看其他地方是否已经回答了这个问题。如果没有,请询问,并使用项目中的“其他rb文件”来说明为什么这对您不起作用。
get '/' do
    system 'rake test'
end