我正在使用 eval 来运行一些代码(在数据库中,没有 ruby 文件)但是这段代码需要一些 gem。我将如何运行代码?也许有比 eval 更好的方法?
为了提供更多上下文,我在 View 中有一个切换按钮,用于将模型中的 bool 值切换为真或假。这对于每一个“代码段”都是可能的。
当它切换为 true 时,代码开始在一个永不停止的线程中运行,而当它切换为 false 时,这会终止线程。
我只是想让线程立即运行代码。
我对 Rails 还很陌生,所以也许有比像我现在做的那样手动完成更好的方法,但我尝试用谷歌搜索一些典型的线程内容,它用于发送邮件或其他类似的东西。除非被告知(即切换将 bool 值切换为 false 的按钮),否则不会停止。
提前致谢。
最佳答案
听起来您需要为代码添加 gem 导入前缀——这可能首先需要一个捆绑环境来加载这些 gem。
由于代码直接存储在数据库中,您可以在它们前面加上另一个列/常量来为您加载所有 gem。
如果 gem 已经通过服务器上的 bundler 安装,请尝试在您的代码前加上 bundle exec
前缀。为此,您需要先将代码写入临时文件位置。
要安装正确的 gem,这是构建/部署过程的一部分。
关于ruby-on-rails - 使用 eval 运行 ruby 代码,它是 gems,rails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50146073/