1

レコードを並べ替える前に、あるテーブルを別のテーブルと結合する必要があります。これまでのところ、次のように文字列を使用してのみ順序付けを行うことができることがわかりました。

customer.joins(:product).order("products.position")

ハードコードされた文字列値を使用するのは好きではありません。安全ではないと感じます。以下のように、代わりに Ruby シンボルを使用できればいいのですが。

customer.joins(:product).order(:products => :position) #doesn't work

どうすればいいですか?

where以下の例に示すように、テーブルを結合して を実行するときに Ruby シンボルを使用できるため、可能であると感じています。

customer.joins(:product).where(:products => {:manufacturer_id => @manufacturer.id})
4

1 に答える 1

0

いいえ、activerecord はこのように設計されていません。私が考えることができる最も良い理由は、どのように指定するか、ASCまたはDESCそのタイプの命名を使用するかということです。機能させるには、文全体を文字列形式で指定する必要があります。

于 2012-09-17T05:26:04.223 に答える