@rubylang

Страница 510 из 1684
I
18.10.2016
09:19:34
какая строка соответствует 0 ?

ведь можно написать m.%соответствующая_строка%!

и он сохранит сразу

короче, покажи enum )

Google
Konstantin
18.10.2016
09:21:31
enum age_restriction: { '0+' => 0, '6+' => 6, '12+' => 12, '18+' => 18 }

да сути дела это не поменяет

I
18.10.2016
09:22:22
а m.age_restriction = '0+' не работает?

Konstantin
18.10.2016
09:22:43
работает

и public_send(:'0+!')

только потом все равно он кастанет в '0' и вернет nil

I
18.10.2016
09:23:22
что кастанет)

кто кастанет)

Konstantin
18.10.2016
09:23:43
[m.send(:'0+!'), m.age_restriction]

=> [true, nil]

[m.send(:'0+!'), m.age_restriction, m['age_restriction']]

=> [true, nil, "0"]

лучше так

Google
I
18.10.2016
09:25:24
дерни название_модели.age_restrictions

Konstantin
18.10.2016
09:25:51
[37] pry(main)> m.class.age_restrictions => {"0+"=>0, "6+"=>6, "12+"=>12, "18+"=>18}

I
18.10.2016
09:36:39
[m.send(:'0+!'), m.status, m['status']] (0.1ms) BEGIN (0.2ms) COMMIT => [true, "0+", "0+"]

ну я в модельке просто пропертю иначе назвал, а так enum тот же

Konstantin
18.10.2016
09:39:07
а версия какая?

AR

I
18.10.2016
09:39:57
5.0.0.1

Konstantin
18.10.2016
09:40:18
возможно в этом разница

у меня 4.2.7.1

Антон
18.10.2016
09:41:56
есть выход, не использовать enum

I
18.10.2016
09:43:08
4.2.7.1 проверил

[2] pry(main)> [m.send(:'0+!'), m.restriction_age, m['restiction_age']] (0.2ms) BEGIN (0.4ms) COMMIT => [true, "0+", nil]

[3] pry(main)> m.restriction_age => "0+"

Konstantin
18.10.2016
09:48:06
а база?

какая

I
18.10.2016
09:48:41
pg

конечно же

9.5

Konstantin
18.10.2016
09:57:01
@igorpavlov покажи схему плз

I
18.10.2016
09:58:47
я уже откатил изменения, но я делал обычную интовую колонку и дефолт на 0

Google
Konstantin
18.10.2016
09:59:20
дык

интовую

у меня легаси база

я добавил enum

а поле уже есть

и оно строковое

I
18.10.2016
09:59:47
Ну да, enum на интовых работает

Konstantin
18.10.2016
09:59:51
я ожидал, что оно упадет

а оно просто сломалось молча

I
18.10.2016
10:00:04
Сделайте миграцию в интовую

Konstantin
18.10.2016
10:00:09
да это понятно :)

trickster
18.10.2016
11:01:09
:D

Alex
18.10.2016
11:32:38
документация на php? Лол

Антон
18.10.2016
11:43:39
язык такой :) русский, английский, php

Alex
18.10.2016
11:58:05
Я врал

Tony
18.10.2016
15:55:02
В руби все аргументы передаются по ссылке или по значению?

Смерть
18.10.2016
15:59:12
переменные передаются по значению

но это не однозначно

Для объектов передается значение ссылки, так что ты можешь менять объект, но не можешь менять ссылку на него

Google
Антон
18.10.2016
16:00:57
читаю нотификацию Смерть Неизбежна но это не однозначно

Tony
18.10.2016
16:01:49
Понятно, что ссылку менять не могу. Вопрос был именно в изменении объекта

АД

Admin
ERROR: S client not available

yopp
18.10.2016
16:04:44
в руби всё указатель

Tony
18.10.2016
16:05:06
Какая-то смертельно опасная конфа

yopp
18.10.2016
16:05:10
просто есть типы которые вмещаются в указатель

но это детали реализации

Tony
18.10.2016
16:06:11
но это детали реализации
Это как раз-таки довольно интересно

yopp
18.10.2016
16:06:19
не интересно

это интересно либо тем, кто пишет экстеншены, либо тем кто пишет виртуальную машину

например Fixnum влазит в указатель, пока не кастанулся в Bignum

проверяется через .object_id

irb(main):040:0> 100000.object_id => 200001 irb(main):041:0> 100001.object_id => 200003

Tony
18.10.2016
16:08:55
А как указатель на бигнам подать?

yopp
18.10.2016
16:09:05
не надо забивать себе указателями голову

в руби невозможно «разыменовать ссылку»

foo = "*" * 1024*1024*1024 def size_of(bar); bar.size; end

переменная foo в данном случае является просто указателем на кучу

Google
yopp
18.10.2016
16:10:46
на объект в куче в смысле

ты всегда и везде передаёшь указатель

потому что в руби нет «сырых областей памяти» per se

Tony
18.10.2016
16:11:38
Понял

Спасибо

yopp
18.10.2016
16:12:26
говорим объект, подразумеваем «указатель на объект»

ojab
18.10.2016
16:26:55
И из-за этого возможны всякие не вполне очевидные эффекты вроде https://gist.github.com/ojab/068f693019f9da74269ea720bcfc7b3a и https://gist.github.com/ojab/ba19f507e223da62a5a821fa71dd5dad

Антон
18.10.2016
16:40:14
запишите для собеседования на мидлов: объяснить почему так и что вернет метод

Valentin
18.10.2016
17:16:19
Минутка идиотизма: Если в тестах присвоить user = create(:user, email: 'user@site.com') то как проверять? expect(mail.to).to eq ['user@site.com'] или expect(mail.to).to eq [user.email] ?

ojab
18.10.2016
17:17:34
в общем случае expect(user.email).to eq('user@site.com')

wtf mail.to?

Valentin
18.10.2016
17:18:41
wtf mail.to?
проверяет тому ли отправляет письмо

ojab
18.10.2016
17:21:29
проверяет тому ли отправляет письмо
тогда зависит от того как у тебя создаётся mail. Можно вообще писать let(:email_address) { 'user@site.com' } let(:user) { create(:user, email: email_address) expect(mail.to).to eq([email_address])

в твоей цитате непонятно зачем юзеру присваивать конкретный email, а не создавать произвольный в фабрике

Страница 510 из 1684