在 rails 3 中,我想做以下事情:
SomeModel.where(:some_connection_id => anArrayOfIds).select("some_other_connection_id")
这有效,但我从数据库中得到以下信息:
[{"some_other_connection_id":254},{"some_other_connection_id":315}]
现在,那些 id-s 是我需要的,但我无法进行仅给我 id 的查询。我不想重复计算结果,只是为了得到这些数字。我有什么办法可以用这样的东西来做到这一点:
SomeModel.where(:some_connection_id => anArrayOfIds).select("some_other_connection_id").values()
或者类似的东西?
我一直在尝试使用在 Git-hub 找到的“.select_values()” ,但它只返回“some_other_connection_id”。
我不是 Rails 方面的专家,所以此信息也可能有帮助:
“SomeModel”是一个连接表,用于我的其他模型之一中的多对多关系。因此,实际上我要做的是从 ID 数组中获取连接另一端的所有条目。基本上我有源 ID,我想从具有所有目标 ID 的模型中获取数据。如果有一种无需我自己执行所有 sql(在 active record 的帮助下)就可以获取这些信息的神奇方法,那就太好了!
谢谢:)
最佳答案
尝试 pluck方法
SomeModel.where(:some => condition).pluck("some_field")
它的工作原理是
SomeModel.where(:some => condition).select("some_field").map(&:some_field)
关于ruby-on-rails-3 - Rails 3 只选择值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6909769/