2009-06-19 8 views
1

を選択し、私はこのは、のように使用してジョイン:ActiveRecordの

Version.find(:all, :joins=>"JOIN editions ON versions.edition_id=editions.id JOIN products ON editions.product_id=products.id", :select=>"products.name, versions.name AS what") 

を行うにしようとしていますが、ActiveRecordのは...任意のアイデアをASキーワードを尊重していませんか?

編集:両方のフィールドが「名前」と呼ばれているので、それらは衝突しているので、リストの最後のフィールドのみを取得します。クエリから

+0

ちょうど私のためによく似た何かを走らせました。問題をもっと詳しく説明できますか? ActiveRecordはversions.nameにproducts.nameをロードしていますか? versions.nameの値がversions.first.whatに含まれていませんか? – Ben

+0

こんにちはベン、ご意見ありがとうございます。私の誤解は、IRB(またはRailsコンソール、またはその両方)... things.first.実際に私が必要としていたものを含んでいたものでした。しかし、thing.firstはまだコンソールでそれを示していない.....まだ学んでいます。再度、感謝します。 –

答えて

1

[#<Version name: "foobar1">, #<Version name: "foobar2">]

製品にhas_manyエディション(ここだけの関係を指定する)

版にhas_manyのバージョン

foo = Version.find(:all, :joins=>"JOIN editions ON versions.edition_id=editions.id JOIN products ON editions.product_id=products.id", :select=>"products.name, versions.name AS what") 
puts foo.inspect 

これはあなたの価値を与える必要があります

類似の階層を作成したところ、完全な結果が得られました。エラーが発生した場合はスタックトレースを共有しますか?

編集:foo [0] .attributes print {"name" => "foobar1"、 "what" = ""} このタイプミスは申し訳ありません。私は属性を言うつもりだった。

+0

はい!私は、コンソールがちょうどすべての値を吐き出すと思っていましたが、実際はそうではありません。 –

+0

+1と最善の答えとそのすべて。ありがとう。 –

関連する問題