3
有谁知道是否有可能为ActiveRecord表连接设置别名?ActiveRecord表别名
喜欢的东西:
User.find(:all, :alias => "Users as u", :joins => "Friends as f", :select => "u.id,f.name")
任何想法?
有谁知道是否有可能为ActiveRecord表连接设置别名?ActiveRecord表别名
喜欢的东西:
User.find(:all, :alias => "Users as u", :joins => "Friends as f", :select => "u.id,f.name")
任何想法?
是的,但是如果覆盖连接,则需要包含'ON'语句和连接语句。
User.find(:all, :joins => " as u INNER JOIN Friends as f ON f.user_id = u.id", :select => "u.id,f.name")
或Rails的3+
User.joins("as u INNER JOIN Friends as f on f.user_id = u.id")
.select("u.id, f.name")
.all
难道只是我还是这是一个黑客? – MoMolog 2013-12-10 10:34:49
在某种程度上,是的。但通常当你开始重写假定的行为时,这是一种黑客行为。我相信现在有一些arel可用,这会让这个问题变得不那么棘手。但据我所知,这仍然是在维护ORM功能的同时执行复杂连接的最简单方法。请注意,去年我没有做过大量的开发工作,所以我可能在以后的版本中漏掉了一些东西。 – 2013-12-10 13:55:17