Size: a a a

2021 October 22

Э

Эдем in RubyRush.ru
Конфиг гема? Патч какой-то?
источник

VM

Volen"De Morti in RubyRush.ru
Это свой гем) Подключил его к другому проекту, а bundle  конфиг не забрал.
источник

Э

Эдем in RubyRush.ru
Может эти файлы не загружены просто
источник

Э

Эдем in RubyRush.ru
Поэтому bundle и не стянул их
источник

AT

An Ton in RubyRush.ru
Объясние магию слова self.
В полном варианте строчка с before_save Выглядит так
before_save { self.email = self.email.downcase }
self.email = self.email.downcase }
Для краткости self у email.downcase убирают.
А почему нельзя убрать self у email (2 картинка)?
источник

AT

An Ton in RubyRush.ru
источник

МВ

Міша Василенчук... in RubyRush.ru
Self либо инстанс либо клас, как где, если очень кратко)
источник

AT

An Ton in RubyRush.ru
Ссори, но вообще непонятно что ты ответил.
источник

МВ

Міша Василенчук... in RubyRush.ru
Ну в твоем примере self это объект модели, тоесть инстанс
источник

AT

An Ton in RubyRush.ru
Да, это я понимаю.
источник

Э

Эдем in RubyRush.ru
self — это текущий контекст исполнения кода
Ну и он там не нужен на самом деле
before_save { email.downcase! }
источник

AT

An Ton in RubyRush.ru
Вот тут как-то понятней.
источник

AT

An Ton in RubyRush.ru
Но неясно почему
before_save { email = email.downcase } не работает
источник

K

Kirill Ilyin in RubyRush.ru
Потому что self.email - getter, а self.email = - setter. Вы не можете во время вызова setter записывать объект в никуда, а во время вызова getter можете без self делать, поскольку Ruby поймёт, что за метод будет.
источник

Э

Эдем in RubyRush.ru
Потому что воспринимается, как объявление локальной переменной email
Так работает Руби
источник

AT

An Ton in RubyRush.ru
Вот ваши два последних сообщения здорово помогли. Кажется начинаю понимать.
Спасибо!
источник

K

Kirill Ilyin in RubyRush.ru
Если вы знаете, как работает attr_accessor в Ruby, то тут тоже самое будет.
источник

AT

An Ton in RubyRush.ru
Да. Я читал про него. Но на практике пока понимания мало. Но кажется я понял.
источник

K

Kirill Ilyin in RubyRush.ru
Class A
 def initialize(hello)
   @hello = hello
 end

 def hello
   @hello
 end

 def hello=(value)
   @hello = value
 end
end

Вот что выше написал - это как работает attr_accessor.
источник

AT

An Ton in RubyRush.ru
Да-да. Он создает эти два метода.
Когда ты написал
>self.email - getter, а self.email = - setter.

Я вспомнил что есть вот такое def hello=(value)

Непривычная запись с этим =
Отсюда и небыло понимания.
источник