我和一位同事就在if中分配变量的最佳方式进行了争论..否则就封锁.他的原始代码是:
@products = if params[:category]
Category.find(params[:category]).products
else
Product.all
end
我这样重写:
if params[:category]
@products = Category.find(params[:category]).products
else
@products = Product.all
end
这也可以使用ternery操作符(?:)用一行重写,但让我们假设产品分配长度超过100个字符,不能放在一行中.
这两者中哪一个对你来说更清楚?第一个解决方案占用的空间少了一点,但我认为声明一个变量并在三行之后分配它可能更容易出错.我也喜欢看到我的if
和else
对齐,这让我的大脑更容易解析它!