Ruby on Railsにてあるデータを取得するのに効率的な書き方を模索しております。
前提・実現したいこと
下記の「if(Category.kind = '〜」の部分をscope等で書けないか悩んでおります。
下記のように煩雑的でなく簡潔に書くのにいい方法はないでしょうか?
Category.kindがパラメータのkindかつStudents.students_idがパラメータのstudents_idの場合、Categoryテーブルのflugを取得し、条件に当てはまらない場合はnullとしたいと思っております。
該当のソースコード
RubyonRails
1 @books = Books 2 .select('Books.*, Category.id, if(Category.kind = ' + '"' + params[:kind] + '"' + ' and Students.students_id = ' + '"' + params[:students_id] + '"' + ', Category.flug, null) as flug') 3 .joins(:Category) 4 .joins(:Students)
補足情報(FW/ツールのバージョンなど)
Ruby on Rails5
あなたの回答
tips
プレビュー