是否可以从nodejs生成rails控制台,然后在rails控制台中执行脚本?
const { spawn } = require('child_process');
const child_process = spawn('rails c');
child_process.stdout.on('data', function (data) {
console.log('stdout', data.toString());
});
child_process.stderr.on('data', function (data) {
console.log('stderr', data);
});
child_process.on('close', function (code) {
console.log('close', code);
});
打开控制台时,我想在rails控制台中执行此脚本
user_id = 1624522827
Sharding.get_shard(user_id) do
account = UserList::User.find(user_id).make_user
end
如何在nodejs中实现这一点。我的目的是创建一个在rails控制台中运行脚本的cli。
2条答案
按热度按时间d7v8vwbk1#
我想你想要的是
rails runner
而不是控制台。给它传递一行ruby代码或文件名。它将在rails环境中运行,而不仅仅是ruby irb环境。2admgd592#
ruby控制台是为人类设计的。我不会尝试将输入输入到它中。
更好的方法是使用rake任务,然后用
bundle exec rake task:subtask
rake任务指南所有代码都应该放在rake任务中,然后您可以仅使用文件路径从nodejs调用它。