【发布时间】:2013-09-13 09:30:45
【问题描述】:
如何优化/重构此 Rails 代码,
如果 co 不为零,我想将 where 条件应用于 Country 和 City,如果它为零,则应用所有条件。
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
这是一个好方法还是有更好的方法?
【问题讨论】:
标签: ruby-on-rails activerecord where-clause