假设我有两个表Parent
和Child
,如果我这样做的话,它们都有一个名为name
的字段:
Parent.join(:child).group(:name)
我会收到一条错误消息,指出字段name
中存在歧义。我可以做以下
Parent.join(:child).group('parents.name')
要解决它,但我更愿意使用符号,如果可能的话。那么,是吗?
答案 0 :(得分:1)
您可以重新定义范围以自动添加表名前缀
class Parent < ActiveRecord::Base
class << self; alias_method :old_group, :group; end
scope :group, lambda { |g|
old_group("#{table_name}.#{g}")
}
end
Parent.join(:child).group(:name)