5

假设我有两个表,Parent并且Child它们都有一个名为 的字段name,如果我这样做:

Parent.join(:child).group(:name)

我会收到一条错误消息,指出该字段存在歧义name。我可以做以下

Parent.join(:child).group('parents.name')

要解决它,但如果可能的话,我更喜欢使用符号。那么,是吗?

4

1 回答 1

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)
于 2012-09-28T20:44:45.253 回答