ruby-on-rails - 使用 eval 运行 ruby​​ 代码,它是 gems,rails

标签 ruby-on-rails ruby

我正在使用 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/

相关文章:

mysql - rake 中止 : db:schema:dump

ruby-on-rails - 我应该在 Rails 中创建用于存储用户地址的新表吗

ruby-on-rails - Rails 验证 Has Many 关系至少有 1 个条目

ruby-on-rails - 使用 Rails 即时生成唯一 token

ruby - `(?:| ...)` 在 Ruby 正则表达式中意味着什么?

ruby-on-rails - Rails rake Mechanize - 错误 - 没有要加载的文件 - Mechanize

ruby - 如何在不需要为私有(private) Docker 存储库付费或公开我的代码的情况下使用 Docker 启动 IronWorker?

ruby-on-rails - Rails 迁移 - Mysql2::错误:指定的 key 太长;最大 key 长度为 767 字节

ruby-on-rails - :conditions on a belongs_to association?的目的是什么

ruby-on-rails - 未定义的方法无 "group_by"