甲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結束。不過,這並不一定會使它更易於維護。 (附註:我真不明白用「更少的線」或「單行」的癡迷) –