这是我真正想做的事情:
Outage.joins{eval "unit.plant"}
我将有一个代表squeel keypath的字符串。我想将此字符串发送到连接语句中。
但这是我得到的错误:
#<Class:0x639e328>: unknown class: Squeel::Nodes::Function
我试过了:
Outage.joins{"unit.plant"}
但这不起作用......我错过了什么?
我在 github 页面上没有看到任何关于此的文档:https ://github.com/ernie/squeel/
感谢您的任何帮助!
更新:
我发现了一种非常令人困惑的方法来解决这个问题:
("unit.plant".split ".").map{ |x| x.to_sym }.reverse.inject{ |acc, x| { x => acc } }
这将输出:
{:unit=>:plant}
这可以传递给joins squeel函数。我确信必须有比构造嵌套符号更好的方法:(