甲user
具有多个libraries
,并且每个库具有多个books
。我想知道用户是否在他的某个库中有书。我打电话此方法:current_user.has_book?(book)
:这个红宝石方法可以重构吗?
def has_book?(book)
retval = false
libraries.each do |l|
retval = true if l.books.include?(book)
end
return retval
end
可我的方法进行重构?
为了什么目的?你最终的目标是什么?如果清晰度是你的目标,则更短不一定更清楚。 –
我的目的是通过并理解我用来生成更易维护的代码并保持符合常见用法的语言的“提示和技巧”。我不想要一个丑陋的代码,也没有10行代码,如果我能在1或2 –
在Ruby中做的工作,你总是可以用分号取代换行,所以你可以随时在1号线做的工作:'高清has_book ?(书)retval = false; libraries.each do | l |如果l.books.include?(book)结束,则retval = true;返回retval结束。不过,这并不一定会使它更易于维护。 (附注:我真不明白用“更少的线”或“单行”的痴迷) –