基本上我想将一个 Ruby 块存储到数据库中并使用它们。
有人可能会问为什么——原因是,我希望我的用户能够发布/上传一个块代码——可以执行它来为他们可能拥有的数据问题获取所需的结果。
所以你不想存储红宝石块。你想存储代码。这更容易。只需将代码存储为字符串。然后你可以eval
得到那个字符串,有效地执行代码。
现在你必须解决一个难题:如何防止用户发布恶意代码(或如何将它们沙箱化)。但这超出了这里的范围。
首先,将您的代码存储为字符串(ruby2ruby gem可能会帮助您)。当您需要执行此块时,从 DB 中检索它,并使用“ eval ”方法