【问题标题】:Running rails console command from nodejs从 nodejs 运行 rails 控制台命令
【发布时间】:2021-07-16 16:16:02
【问题描述】:

是否可以从 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。

【问题讨论】:

    标签: javascript node.js ruby-on-rails ruby


    【解决方案1】:

    我认为你想要的是rails runner 而不是控制台。将一行 ruby​​ 代码或文件名传递给它。它将在 rails 环境中运行,而不仅仅是 ruby​​ irb 环境。

    【讨论】:

      【解决方案2】:

      ruby 控制台是为人类设计的。我不会尝试通过管道输入。

      一个更好的主意是使用 rake 任务,然后调用它

      bundle exec rake task:subtask

      guide for rake tasks

      您的所有代码都应该放在 rake 任务中,然后您可以仅使用文件路径从 nodejs 调用它。

      【讨论】:

        最近更新 更多