
Alexander
22.11.2016
09:57:35

Alex
22.11.2016
09:58:09
ты когда генеришь js ты вызываешь erb. Шаблоны это более тяжелая вещь чем просто вернуть данные.

Dmitriy
22.11.2016
12:36:46
парни забыл, при создании миграции rails g migration нужно множественное число CreateCarriages или CreateCarriage

I
22.11.2016
12:37:27
на самом деле похер
а так единственное

Google

Dmitriy
22.11.2016
12:38:00
Спасибо)
кто нибудь знает простой способ сложить все элементы массива?
цифровой массив

Alex
22.11.2016
14:11:56
Пример массива?

Alexander
22.11.2016
14:12:09
.inject(:+)

trickster
22.11.2016
14:12:21
.reduce :+

Dmitriy
22.11.2016
14:12:22
a = [1,2,3] = 6

trickster
22.11.2016
14:12:32
.sum :D

Dmitriy
22.11.2016
14:12:48
хм)

Alexander
22.11.2016
14:13:16

I
22.11.2016
14:13:23
уже есть
:D

Alexander
22.11.2016
14:13:41
2.3.3 ?

Google

I
22.11.2016
14:13:51
2.4.0 :)

Alexander
22.11.2016
14:14:48

trickster
22.11.2016
14:19:32
и чем он более норм чем инжект?

Dmitriy
22.11.2016
14:47:49
делал такую задачу, считаю из таблицы количество мест в платскартном вагоне
train.carriages.select {|c| c.type_carriage == true }.sum {|s| s.top_seat} это кривой код да?
плацкартном*
train.carriages.select {|c| c.type_carriage == true } проверяю тип вагона если true то плацкарт

kolas
22.11.2016
14:51:35
da

Dmitriy
22.11.2016
14:52:34
ладно, буду думать как решить нормально эту задачу, спасибо

Dmitry
22.11.2016
14:52:47
А кто мешает актив рекорд использовать?

Adamtsov
22.11.2016
14:52:50
а эти данные в бд храняться?

Dmitriy
22.11.2016
14:52:58
да
в бд

Dmitry
22.11.2016
14:53:27
train.carriages.where(type_carriage: true).sum(:top_seat)

Dmitriy
22.11.2016
14:54:31
спасибо!) ну я так понял такая логика не должна быть во вьюхах? ее надо выносить в модели?

Lupsick
22.11.2016
15:18:28
посоны а кто-нибудь раскрашивал вывод минитестов в рельсах?
я хочу чтоб он мне название теста выделял при --verbose

Alexander
22.11.2016
15:19:01
colorize вроде гем

Lupsick
22.11.2016
15:27:48
minitest-reporters кароч

Alexander
22.11.2016
15:28:30
и чем он более норм чем инжект?
вообще документация одинаковая, и вроде даже сорцы одинаковые (не альяс, а тупо дублирование кода), но есть статьи, что лучше юзать reduce из-за читаемости. а так-то оба названия пришли просто из разных ЯП, насколько я недавно узнал.

Google

Иван
22.11.2016
16:55:02
поэтому C.new.foo вернет константу FOO определенную в классе B
если ты создашь метод в классе C, то константа FOO будет равна bar
вроде так это работает

Alexander
22.11.2016
16:57:09
и раз уж можно — почему это не работает точно как self.class::CONST, а по области объявления только

Иван
22.11.2016
16:58:25
я не понял вот это - можно обратиться не через класс из инстанции
а в методе класса можно наверно вот так - self::CONST

Alexander
22.11.2016
17:00:42
хотя константа объявлена (и принадлежит) классу, а не его экземплярам

Иван
22.11.2016
17:01:27
а у экземпляра класса вообще не может быть константы
константы хранятся внутри класса

Иван
22.11.2016
17:01:40
и это просто входит в область видимости

Alexander
22.11.2016
17:03:28

Иван
22.11.2016
17:04:23
почему не работает у тебя же в том примере C.new.self_foo # => 'bar'
и это работает

Alexander
22.11.2016
17:05:48
и ты ещё, видимо, знаки препинания пропускаешь — мешает пониманию(

Google

Alexander
22.11.2016
17:07:35
ну, это помимо первого вопроса, почему def foo; FOO; end вообще работает — но ладно, допустим так решили упростить что-то в Ruby

Иван
22.11.2016
17:11:36
потому что в C.new.self_foo у тебя puts self.class::FOO, что преобразуется в C::FOO и выведется константа FOO определенная в классе C. В то время как в С.new.foo (метод определен в классе B) константа FOO продолжит ссылаться на FOO из B класса
у тебя же метод чудесным образорм не копируется в новый класс при наследовании
он все равно находится в классе B
можешь в методах своих попробовать вывести p Module.nesting
и увидишь, что везде у нас область видимости это B
а руби если не указать откуда брать константу (точный адресс типо C::FOO), то он идет искать ее в окружающие твой код классы/модули

Alexander
22.11.2016
17:27:25

Иван
22.11.2016
17:31:13
не знаю можно ли это сахарком назвать, просто руби так ищет константу
https://cirw.in/blog/constant-lookup.html
вот вроде нормальная статья

Admin
ERROR: S client not available

Иван
22.11.2016
17:35:20
http://valve.github.io/blog/2013/10/26/constant-resolution-in-ruby/
http://jfire.io/blog/2011/01/21/making-sense-of-constant-lookup-in-ruby/

Alex
22.11.2016
17:43:09
к классовому методу тоже без self можно обращаться
в инстансе.
потому что дефолтный self Это инстанс в котором ты работаешь.

Alexander
22.11.2016
17:46:05

Alex
22.11.2016
17:46:52
Твой вопрос разве не звучал "почему я имею доступ к константе внутри класса без self?"

Alexander
22.11.2016
17:47:31

Alex
22.11.2016
17:48:00
внутри класса по self.CONSTANT доступно?

Google

Иван
22.11.2016
17:49:47

Alex
22.11.2016
17:50:18

Иван
22.11.2016
17:51:07
так one это метод экземпляра

Alex
22.11.2016
17:51:24
Да, я очепатялся, сказал про класс но имел ввиду истанс :(

Иван
22.11.2016
17:51:24
да и вообще не стоит сравнивать то как находятся константы с тем как ищутся методы в руби

Alexander
22.11.2016
17:54:07
внутри класса по self.CONSTANT доступно?
Что значит «внутри класса»? Тела класса? Смотря в каком случае.
Суть в том, что если у тебя классовый метод `def self.foo`, то из инстанции ты его можешь вызвать только через `self.class.foo`, насколько я знаю, а если есть константа `FOO` — то из метода инстанции можешь получить её без `self.class::`

Alex
22.11.2016
17:54:29
Опять очепятался, имел ввиду внутри инстанса класса :(
потому что в инстансе, в self нету методов класса.
Только инстансовые методы.

Alexander
22.11.2016
17:55:50

Alex
22.11.2016
17:56:02
Но с константами это наверное просто рубиспецифика и тут нет особого смысла искать глубокий причинный смысл.

Alexander
22.11.2016
17:56:28
Через `self.FOO` в методе инстанции не пробовал, но должно сработать

Alex
22.11.2016
17:57:17
Тогда одним вопросом меньше.

Alexander
22.11.2016
17:57:39
Ну то есть как «ищет иначе» — находит, но именно в неймспейсе объявления метода инстанции, а не caller'а

Alex
22.11.2016
18:31:43
А почему оно должно находить константу в области каллера? Метод инстанса это не лямбда.
Каллер это код который дергает метод инстанса верно?

Иван
22.11.2016
18:34:43
что такое инстанция?
я не понимаю что под ним имеется в виду

Alex
22.11.2016
18:36:38
Экземпляр класса - instance

Иван
22.11.2016
18:41:02
внутри методов экземпляра self ссылается на объект нашего класса

Alexander
22.11.2016
18:41:42