大変お世話になっております。またご質問させていただきます。
###前提・実現したいこと
DBから取って来た値を加工してviewに表示したいです。
例えば、column1[金額1],column2[金額2],column3[フラグ]
というレコードをDBからActiverecordで取得して来た時に、フラグの値によって金額の集計方法を変えて、最終的にViewに表示したいです。
###発生している問題・エラーメッセージ
取得して来たレコードを、再度foreachで回すことで、実現は可能かと思うんですが、それではパフォーマンス的に問題があるので、この値の加工を、他言語で言う所のsetterメソッドのような形で処理させたいのですが、実現方法がわかりません。
###該当のソースコード
//今現在書いているコードです。Modelでのeachが原因で処理速度が落ちています。
controller @data = Model.getmethod end Model class self.def getmethod //何十万行のレコードが入ります。 modeldata = Model.all modeldata.each |data| data.display_data = data.flg == 1 ? data.kingaku1 - data.kingaku2 : data.kingaku2 - data.kingaku1 end return modeldata end end
//どのように書くのかはわかりませんが、このような感じで、不要なeachを無くしたいです。データベースから値を取得したタイミングで、データの加工も同時にやってしまうようなイメージです。
controller @data = Model.getmethod end Model class self.def getmethod //何十万行のレコードが入ります。 modeldata = Model.all end def display_data_setter_method return data.display_data = data.flg == 1 ? data.kingaku1 - data.kingaku2 : data.kingaku2 - data.kingaku1 end return modeldata end end
###補足情報(言語/FW/ツール等のバージョンなど)
Ruby on Rails5
回答3件
あなたの回答
tips
プレビュー