2007年12月13日

":include"を試してみます。

昨日の文末に書いた":include"を試してみます。
以下のようにfindメソッドにオプションとして渡すようです。

@denpyo = Denpyo.find(params[:id], :include=>:denpyo_meisais)

で、実行してみると以下のようなSQLを実行しました。
いい感じいい感じ♪。。。って駄目じゃん!

SELECT denpyos.`id` AS t0_r0, denpyos.`denpyo_no` AS t0_r1, denpyos.`shohin_sum` AS t0_r2,
denpyos.`kingaku_sum` AS t0_r3, denpyos.`denpyo_date` AS t0_r4, denpyo_meisais.`id` AS t1_r0,
denpyo_meisais.`denpyo_no` AS t1_r1, denpyo_meisais.`meisai_no` AS t1_r2,
denpyo_meisais.`shohin_name` AS t1_r3, denpyo_meisais.`suryo` AS t1_r4,
denpyo_meisais.`kingaku` AS t1_r5
FROM denpyos
LEFT OUTER JOIN
denpyo_meisais ON denpyo_meisais.denpyo_no = denpyos.id # ←駄目じゃんな箇所
WHERE (denpyos.`id` = 1)

結合条件は、"denpyo_meisais.denpyo_no = denpyos.denpyo_no"となってほしかったのですが、Railsのポリシーとして、「参照先はPKでなくちゃ」という強固な縛りがあるようです。

一応、以下のサイトにあるようなカスタマイズをRailsに行えば、参照先列を指定できるようにすることも可能のようです。
http://wota.jp/ac/?date=20061119

「レールの外は修羅の道」合掌。。。猫
posted by 台北猫々 at 19:30| Comment(0) | TrackBack(0) | 技術メモ(Ruby)
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/8189745

この記事へのトラックバック