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