この Rails コードを最適化/リファクタリングする方法、
co が nil でない場合は国と都市に where 条件を適用し、nil の場合はすべて適用します。
def pre(co = nil,ci = nil)
cond1 = co.nil? ? "all" : "where(:id => co)"
cond2 = ci.nil? ? "all" : "where(:id => ci)"
@countries = Country.send(cond1).order(:name).map{|i| [i.name,i.id]}
@cities = City.send(cond2).order(:name).map{|i| [i.name,i.id]}
end
それは良い方法ですか、それとももっと良い方法はありますか?