2012-09-28 10 views
5

を使用してグループにあいまいさを解決するには、私は2つのテーブル、ParentChildを持っていると私がしなければ、それらの両方は、nameというフィールドがあるとしましょう:のRails:シンボル

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

私はエラーを知らせるを取得しますフィールドnameにあいまいさがあります。私はそれを解決するために、私はそれが可能かどうシンボルを使用することを好むだろう、次の

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

を行うことができます。それで、それは?

答えて

1

あなたは自動的にActiveRecordの外の多くをしたい場合は、あなたがsqueel宝石をチェックする必要があり、テーブル名接頭辞

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) 
+2

を追加する範囲を再定義することができhttps://github.com/ernie/squeel – jdoe

+0

あなたはなかったです'group(:parents =>:name)'の魔法はRailsのものではなく、魔法の宝石によって提供されました。混乱させて申し訳ありません。 – jdoe

+0

ありがとうございましたが、それは私の問題を正確に解決しませんでした。例えば、 "childs.name"を指定することはできません。私はそのスケールの宝石を見てみましょう:) –

関連する問題