5

2 つのテーブルが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 に答える