既存のテーブル列から値を計算し、外部変数に使用しようとしています。Rails Activeステートメントを使用して算術演算を行うレコード
私のテーブルの列を次のようにしてください:["id","unit_price","quantity","extras_1","extras_2"]
私はリファレンスとしてSQLコマンドを使用して、レールで何をしたいのかを提示しています。
SQLコマンド:RailsのActive Recordのクエリで
SELECT unit_price*quantity AS "regular_price",
unit_price*quantity-unit_price*quantity*discount AS "price_after_discount"
FROM order_details;
私は同じ試みた:上記query.iから
OrderDetail.select('unit_price*quantity AS regular_price,unit_price*quantity-unit_price*quantity*discount AS price_after_discount')
が導き出さattributes.itに基づいて並べ替えてみましたperfectly.But私が働いていましたクエリによって派生した属性値を参照することはできません。
私が得た出力として導出属性なしです:
[#<OrderDetail >,#<OrderDetail >]
しかし、私のように出力を必要とする:私はdata.Itをソートするために、クエリの下にしようとした
[#<OrderDetail regular_price: 43, price_after_discount: 54>,#<OrderDetail regular_price: 54, price_after_discount: 76>]
は完全にデータを並べ替え:
OrderDetail.select('unit_price,quantity,unit_price*quantity AS regular_price,unit_price*quantity-unit_price*quantity*discount AS price_after_discount').order('regular_price desc')
私は、コマンドの下に使用して値にアクセスできます。
OrderDetail.select('unit_price,quantity,unit_price*quantity AS extras_1,unit_price*quantity-unit_price*quantity*discount AS extras_2')
上記のコマンドは、extras_1
とextras_2
が表の列なので、作業しました。
しかし、既存のテーブルの列に割り当てられているときに機能しています。派生した属性には、存在しないテーブルの列名が必要です。
レコードから派生した属性値にアクセスするにはどうすればよいですか。既存のテーブルの列に割り当てることでアクセスできます。ただし、テーブルの列に関係なく、どのように属性名を指定しますか?