Size: a a a

2021 August 18

D

Denis in RubyRush.ru
Не очень хорошо так делать, можно влипнуть
источник

Э

Эдем in RubyRush.ru
И смотрится на любителя :)
источник

АП

Алексей Печерский... in RubyRush.ru
этот код я понимаю, но как может работать код, где вместо arg стоит "..." это типа сокращение такое?
источник

Э

Эдем in RubyRush.ru
Три точки?
источник

АП

Алексей Печерский... in RubyRush.ru
да, как у меня в сообщении, взято с реального класса
источник

Э

Эдем in RubyRush.ru
Стоит грепнуть по проекту и проверить, как используется этот класс. Похоже на черновик :)
источник

Э

Эдем in RubyRush.ru
В этом коде ошибка синтаксиса
источник

АП

Алексей Печерский... in RubyRush.ru
rubocop её пропускает
источник

АП

Алексей Печерский... in RubyRush.ru
тоже так подумал, но встречается ещё в 4 местах... может заглушка какая...
источник

Э

Эдем in RubyRush.ru
Рубокоп-то может и пропускает, но если интерпретатор начнёт читать такой файл, он споткнётся
источник

DG

Denis Gavrilin in RubyRush.ru
В руби 2.7 добавили 3-dot оператор
источник

DG

Denis Gavrilin in RubyRush.ru
Так что такое и гугли
источник

АП

Алексей Печерский... in RubyRush.ru
можешь рассказать зачем используется?
источник

DG

Denis Gavrilin in RubyRush.ru
Типа сокращение для передачи всех аргументов, лучше реально примеры погуглить, я сам не юзал, могу ошибаться )
источник

АП

Алексей Печерский... in RubyRush.ru
огромное спасибо) прям помог)
источник

DG

Denis Gavrilin in RubyRush.ru
На здоровье )
источник

D

Daniel in RubyRush.ru
Хммм, спасибо, не знал))))
источник

SZ

Sergey Zhirnov in RubyRush.ru
Всем добрый вечер, подскажите, с толкнулся с такой проблемой. Задача из 26 урока про магазин с книгами и фильмами. На версии Ruby 2.7 все работало, на 3.0 стал выдавать такую ошибку.

in block in sort!': undefined method amount' for [#<Film:0x0000559132655220 @price=290, @amount=5, @title="Леон", @producer="Люк Бессон", @year=1994>, #<Film:0x0000559132654fa0 @price=340, @amount=4, @title="Дурак", @producer="Юрий Быков", @year=2014>]:Array (NoMethodError)


def sort!(params)
   case params[:by]
     when :title
       @products.sort_by! {|product| product.to_s}
     when :price
       @products.sort_by! {|product| product.price}
     when :amount
       @products.sort_by! {|product| product.amount}
     end
     @products.reverse! if params[:order] == :asc
     self
 end

Перестал видеть методы price, amount, хотя их геттеры описаны.
Для to_s все работает.
источник

NZ

Nick Zhur in RubyRush.ru
У вас amount пытается вызваться на массиве.что у вас в переменной @products лежит? Попробуйте puts @products.inspect перед case params.
источник

SZ

Sergey Zhirnov in RubyRush.ru
[[#<Film:0x0000561524d7b150 @price=290, @amount=5, @title="Леон", @producer="Люк Бессон", @year=1994>, #<Film:0x0000561524d7ac28 @price=340, @amount=4, @title="Дурак", @producer="Юрий Быков", @year=2014>], [#<Book:0x0000561524d79e90 @price=1400, @amount=50, @title="Идиот", @author="Федор Достоевский", @genre="роман">]]
источник