ruby-on-rails - Squeel 将字符串评估为连接的关键路径

标签 ruby-on-rails ruby ruby-on-rails-3 closures squeel

这就是我真正想做的事情:

Outage.joins{eval "unit.plant"}

我将有一个代表尖叫键路径字符串。我想将此字符串发送到连接语句中。

但是这是我得到的错误:

#<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 函数中。我确信一定有比构造嵌套符号更好的方法:(

最佳答案

怎么样

Outage.joins{Squeel::Nodes::KeyPath.new("unit.plant".split("."))}

来源:KeyPath Docs

关于ruby-on-rails - Squeel 将字符串评估为连接的关键路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11641802/

相关文章:

ruby-on-rails - 从 Rails 中的 CURL 命令访问 CSV 文件

ruby-on-rails - 名称的搜索列在 rails 中是相似的

ios - Swift 推断闭包参数之谜

ruby-on-rails-3 - 带有 heroku 错误未定义方法 `fog_credentials=' 的 Carrierwave 和 s3

css - 让我的自定义字体在 Rails 4 中工作

ruby-on-rails - 需要将 WP 博客与 Heroku 上的 Rails 应用程序链接起来

ruby - 如何使用 Mechanize gem 获取网站的所有链接?

Ruby:Linux ubuntu 上的图形用户界面 tk 不起作用

ruby - rails 格式化正数和负数

ruby-on-rails - 在所有 MiniTest 测试中包含模块,就像在 RSpec 中一样