
Alexander
11.01.2017
08:38:31
вкратце: выносишь валидации из модели в отдельный объект

trickster
11.01.2017
08:39:24
ну у меня вроде не сложный кейс, у меня есть 2 вида аутентификации, через емэйл, и через оаус фэйсбук, но всё это идёт в модель User, может лучшим решением было бы вынести ouath в другую модель?

Alexander
11.01.2017
08:39:44

trickster
11.01.2017
08:40:07
ну я его и использую

Google

Alexander
11.01.2017
08:40:53
хм-хм, возможно тебе нужна усложнённая валидация, если я правильно понимаю
с условиями
но не уверен, что это хороший подход

trickster
11.01.2017
08:41:27
ну у меня логика такая, на обычную аутентификацию ,мне нужен пароль, но при входе через оаус пароль не нужен
но валидация на пароль есть

Alexander
11.01.2017
08:41:48

trickster
11.01.2017
08:41:54
has_secure_password
:D
в модели User

Andrey
11.01.2017
08:42:57
http://guides.rubyonrails.org/active_record_validations.html#using-a-proc-with-if-and-unless
может как то так?

trickster
11.01.2017
08:58:03
ну да, проще сгенерировать рандомный 6значный
чтобы валидация прошла

Dmitriy
11.01.2017
09:11:38
я правильно понимаю что в
includes(:user).where("title LIKE ?", "#{letter}%").order("users.email")
includes(:user) подгружает всех пользователей, для того чтобы воспользоваться order("users.email")

Zulkar
11.01.2017
09:12:57

Google

Dmitriy
11.01.2017
09:13:08
я читал

v
11.01.2017
09:14:26
посмотри там про контекст валидации

Alex
11.01.2017
09:16:18
AR не отправляет запрос в базу пока не понадобятся результаты

Dmitriy
11.01.2017
09:19:10
ура
понял
блин

Zulkar
11.01.2017
09:19:32

Dmitriy
11.01.2017
09:19:48
includes но в случае наличия условия по ассоциированной таблице переключается на создание единственного запроса с LEFT OUTER JOIN
для этого в includes(:user).where("title LIKE ?", "#{letter}%").order("users.email") используется include
includes
.order("users.email")
тоесть происходит слияние 2х таблиц, но мне не понятно почему в модели я не могу без includes выполнить .order("users.email"), ведь ассоциация есть
belongs_to :user,
ладно, надо принять это как данность наверно)

Zulkar
11.01.2017
09:26:55
а что говорит рельсы если ты пытаешься без includes сделать .order("users.email")

Dmitriy
11.01.2017
09:27:44
ActiveRecord::StatementInvalid:
PG::UndefinedTable: ERROR: missing FROM-clause entry for table "users"
LINE 1: ...M "achievements" WHERE (title LIKE 'A%') ORDER BY users.emai...
^
: SELECT "achievements".* FROM "achievements" WHERE (title LIKE 'A%') ORDER BY users.email
а что значит Datasource в instance_double(Datasource

Antony
11.01.2017
12:52:22
что ты даблишь экземпляр Datasource

Dmitriy
11.01.2017
12:53:14
а

Google

Dmitriy
11.01.2017
13:09:09
А подскажите плиз у меня есть модель Achievement
в тесте есть такая строчка let(:achievement) {instance_double(Achievement)}
что в этом случает дублируется?
модель?
это как

Antony
11.01.2017
13:11:34
https://relishapp.com/rspec/rspec-mocks/v/3-5/docs/verifying-doubles/using-an-instance-double

Dmitriy
11.01.2017
13:13:08
емае
вот подскажите, не бывает у кого нибудь такого, учишь что то новое, и забываешь старое

Evgeniy
11.01.2017
13:14:04
у Гомера Симпсона кажется так работает о_О

kolas
11.01.2017
13:15:02
всегда забываю старое
через пол года смотрю старый проект и не понимаю чо там происходит ?
надо научится грамотные доки писать для такого
чтобы легче было разобраться в старье

Dmitriy
11.01.2017
13:18:25
если кому не трудно подскажите
let(:achievement) {instance_double(Achievement)}
allow(Achievement).to recive(:get_achievements) { [achievement]}
Получается, что целый класс Achievement помещается в achievement
потом allow(Achievement).to recive(:get_achievements) { [achievement]} задается то чтобы Achievement.get_achievements выдавал achievement?

Dmitriy
11.01.2017
13:18:28
самого себя?
что за бред

Antony
11.01.2017
13:24:57
ну потому что многие любят делать классы и методы как Земля.копайся()
рекомендую заглянуть в реализацию get_achievements
думаю там обнаружить self.get_achievements наряду с Achievement.where

Dmitriy
11.01.2017
13:29:45
да есть
(Achievement).to recive(:get_achievements) { [achievement]} я просто понять не могу этого
(

Google

Dmitriy
11.01.2017
13:31:11
передать в метод get_achievement класса Achievement сам класс Achievement в массиве??

Antony
11.01.2017
13:31:24
ты мокаешь метод класса Achievement так, чтобы он возвращал тебе массив с одним instance_double этого класса
только и всего
имей в виду что в массиве у тебя экземпляр класса
а не класс

Dmitriy
11.01.2017
13:31:56
ааа
надо покурить
@antony_vorobiev а смысл let(:achievement) {instance_double(Achievement)}
если можно сделать let(:achievement) { Achievement.new }

Admin
ERROR: S client not available

Dmitriy
11.01.2017
14:28:24
будет тоже экземпляр класса

Antony
11.01.2017
14:29:23
я так понимаю, ты с чьим-то кодом и тестами разбираешься

Dmitriy
11.01.2017
14:29:32
ага

Antony
11.01.2017
14:29:39
не имея полной картины, тяжело ответить на этот вопрос
наверное потому что там мокаются еще какие-то методы

Dmitriy
11.01.2017
14:31:44
ладно спасибо)
Как часто вообще тесторование в изоляции происходит?
насколько это актуально

Dima
11.01.2017
14:51:55
всем функционального программирвоания
https://youtu.be/e-5obm1G_FY?t=11m20s

Alexander
11.01.2017
15:58:12
У многих проблема уместно использовать map и each

Google

Dmitriy
11.01.2017
16:17:24
кстати, есть какие новости по компилятору руби?
От питона стал отставать сильно не так ли?
И от пхп

Alex
11.01.2017
16:44:11
если аккуратно все оборачивать в map то можно эффективно работать с данными.

Nikita
11.01.2017
20:24:21

v
11.01.2017
20:26:35
интерпретатор, наверное

France
11.01.2017
20:30:32
Ребята, я чет не оч понял о refinements
Как он связан с манкипатчингом ?
Может кто на пальцах пояснить ?)

Alexander
12.01.2017
09:49:25

France
12.01.2017
09:50:16
Я уже нашел и вдуплился))

Alex
12.01.2017
09:50:42
refinements прикольная штука, но он может быть не так очевиден как кажется :)

Dmitry
12.01.2017
10:41:36
Кто нибудь работал со spree? Если такие найдутся стуканите в лс пожалуйста.

Lupsick
12.01.2017
10:41:55

Pavel
12.01.2017
17:33:49
Есть вопрос, снова назову его глупым. Вопрос заключается в выборе языка программирования для решения олимпиадных задач. Выбор застрял между С и Ruby. Ruby за простоту, а С за быстродействие. Как думаете, что лучше?
Я просто опять боюсь застрять с длинной арифметикой, поэтому решил попробовать интерпретируемые языки, но их быстродействие меня смущает
Как говорится хочется, но колется
?

kolas
12.01.2017
17:36:48
канеш си