如何在db中存储ruby块并使用它们?

Kan*_*anR 5 ruby block

基本上我想将Ruby块存储到DB中并使用它们.

有人可能会问为什么 - 理由是,我希望我的用户能够发布/上传一个块代码 - 这可以被执行以获取他们可能拥有的数据上的问题所需的结果.

Ser*_*sev 4

所以你不想存储红宝石块。您想要存储代码。这更容易。只需将代码存储为字符串即可。然后您可以使用eval该字符串,有效地执行代码。

现在你必须解决一个难题:如何防止用户发布恶意代码(或者如何将它们放入沙箱)。但这超出了这里的范围。

  • @KannanR,关于安全性,在[另一个与评估相关的问题的答案](http://stackoverflow.com/a/14566947/693538)的评论中,人们建议[RubyCop](https://github.com/envylabs/ RubyCop),在您的情况下,它可以通过突出显示列表中潜在危险的代码来帮助您的管理员,这样他们就不会错过它。 (2认同)