YAML.load_file问题

时间:2016-10-15 13:34:56

标签: ruby-on-rails ruby

我在一个目录中有一个bestiary.yml和test.rb,当我尝试加载我的.yml文件时

got_data_1 = YAML.load_file('bestiary.yml')

它给了我一个

/usr/lib/ruby/2.3.0/psych.rb:471:in `initialize': No such file or directory @ rb_sysopen

错误。但是当我尝试启动这个

got_data = YAML.load(File.open(File.join(File.dirname(__FILE__), 'bestiary.yml')))
一切正常。为什么load_file方法不起作用以及这两种方法之间的区别是什么? 谢谢

1 个答案:

答案 0 :(得分:0)

我认为这两个文件都在同一目录中,但您没有从该目录启动rb文件。如果我正确的话也可以试试

var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);
server.listen(4444);

var database = require('./database.js');
database.methods.connect(); 


// Add headers
app.use(function (req, res, next) {
    res.setHeader('Access-Control-Allow-Origin', 'http://localhost:8080');
    res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');
    res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type');
    res.setHeader('Access-Control-Allow-Credentials', true);
    next();
});

app.post('/login', function(req, res) {
    console.log(req.body);
});

这项工作就在yml文件位于同一目录中并且从该目录启动rb文件时

got_data_1 = YAML.load_file(File.join(File.dirname(__FILE__), 'bestiary.yml'))