Hit*_*wal 6 ruby activerecord ruby-on-rails
我有类似的字符串,"User.first"有什么方法可以将该字符串转换为 ActiveRecord 查询:
User.first
Run Code Online (Sandbox Code Playgroud)
这个字符串可以是任何东西,我想让它可执行。
来自内核#eval文档:
\n\n\n\n\neval(字符串 [, 绑定 [, 文件名 [,lineno]]]) \xe2\x86\x92 obj 单击切换\n 源
\n\n计算字符串中的 Ruby 表达式。如果给出了绑定,\n 必须是 Binding 对象,则在其上下文中执行评估。\n 如果存在可选的 filename 和 lineno 参数,则在报告语法错误时\n 将使用它们。
\n
然而,正如 @andrew-marshall 正确指出的那样,如果您使用任何类型的未经验证的输入,这将是一个巨大的安全漏洞。请参阅将 Ruby 锁在保险箱中作为起点。
\n