A 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 строке: 'def has_book ? (книга) retval = false; libraries.each do | l | retval = true, если l.books.include? (book) end; return retval конец'. Тем не менее это не обязательно делает его более удобным. (Боковое замечание: я действительно не понимаю одержимость «меньшим количеством линий» или «однострочными».) –