@proRuby

Страница 684 из 1594
Alex
31.08.2017
12:49:50
Интеграционные тут имхо непричем вообще.

Roman
31.08.2017
13:58:52
Всем привет. Нужно перенести данные в миграции из одной таблицы в три других (выпиливается sti), модели остаются те же. Это делается на чистом sql или есть в рейлс какие-то способы для этого?

rekero
31.08.2017
13:59:23
там много записей?

Nikita
31.08.2017
13:59:31
делал на этой неделе, сделал конечно же чистым сиквелом, как и все миграции :)

Google
rekero
31.08.2017
14:07:31
ну тогда можешь .each do |a| .create!(a.attributes) end

без ковыряния

Roman
31.08.2017
14:08:34
rekero
31.08.2017
14:09:51
создай временную в самой миграции

с self.table_name

Roman
31.08.2017
14:10:59
создай временную в самой миграции
а это должно сработать, спасибо

Sergey
01.09.2017
08:30:55
Кто-то использует record_tag_helper ?

Dmitriy
01.09.2017
14:58:10
Привет! Модель User имеет пароль has_secure_password. Если при создании в пароле первый символ начинается с нуля 0, то он обрубается. Т.е. если задается пароль - 012345, то сохранится как 12345. Что за бред? Никаких обработок нет. Rails 5

Никто не сталкивался с таким?

Alex
01.09.2017
14:58:45
ты точно строку а не цифры суешь?

'0123' != 0123

Google
Dmitriy
01.09.2017
14:59:36
Строка, да

'012345'

Alex
01.09.2017
15:00:10
модель покажи

Dmitriy
01.09.2017
15:02:38
class User < ApplicationRecord has_secure_password validates :password, length: { minimum: 5, maximum: 30 }, if: -?u) { u.password.present? } before_validation :generate_password def generate_password return if self.password_digest.present? self.password = 10.times.map { rand(10) }.join end ...

Alex
01.09.2017
15:02:57
а можно засунуть в блок кода?

`` ` `` `

ток без пробелов

Dmitriy
01.09.2017
15:08:39
сори,сек

class User < ApplicationRecord has_secure_password validates :password, length: { minimum: 5, maximum: 30 }, if: -?u) { u.password.present? } before_validation :generate_password def generate_password return if self.password_digest.present? self.password = 10.times.map { rand(10) }.join end ...

Alex
01.09.2017
15:10:54


Oleg
01.09.2017
15:10:57
Всё-равно смайл смайлом

Надо было код копировать туда не из сообщения

Alex
01.09.2017
15:11:28
before_validation :generate_password зачем при каждой валидации задавать пароль?

Dmitriy
01.09.2017
15:12:15
там менеджер может создавать пачками юзеров, им на телефон потом отправляется

Alex
01.09.2017
15:12:20
> Adds methods to set and authenticate against a BCrypt password. This mechanism requires you to have a password_digest attribute. password_digest есть?

а не валидацию которая постоянно запускается где ни попадя.

еще лучше если контроллер будет задавать пароль, а не сама модель.

Alex
01.09.2017
15:14:20
не знаю почему пароль обрезается. Предлагаю запустить binding.pry и по шагам смотреть где он обрезается.

Google
Dmitriy
01.09.2017
15:18:37
да, по коду вроде все ровно. Подебажу, там будет виднее

Vasiliy
01.09.2017
15:19:22
А как ты понял что именно ноль обрезается?

Там ж енкриптед зашифрован

Dmitriy
01.09.2017
15:20:25
залогиниться пробую

только с 0 такая ситуация, в остальных случая норм

wi11son
01.09.2017
18:30:07
Все видосики с Summer Saint P Ruby Conf, если позволите :) https://www.youtube.com/playlist?list=PLgdk9YdSEmlosCoYKTCgiWtmnhGQ8INF3

Evgeniy
02.09.2017
12:52:23
Всем привет. У меня есть модель Setting, объект должен быть только один, желательно что бы в контроллере не надо было искать через Setting.first, и что бы паз на редактирование выглядел не settings/1/edit a settings/edit Как это реализовать?

Roman
02.09.2017
12:53:28
в routes пиши не resources а resource

Evgeniy
02.09.2017
12:57:10
а в контроллере как инициализировать?

rekero
02.09.2017
16:24:23
Синглтон

Evgeniy
02.09.2017
16:33:57
Можно поподробнее как это сделать?

Oleg
02.09.2017
16:36:08
инклюде синглтон

Evgeniy
02.09.2017
16:45:27
Ну добавил я это в свою модель, и как тепер в контроллере обращаться к моделе?

Fedor
02.09.2017
16:52:02
Зачем тебе singlton в модели?

https://dalibornasevic.com/posts/9-ruby-singleton-pattern

почитай про паттерн

модель - это для связи с базой. Нет чтения/записи в бд, - нет модели и не надо

просто делаешь класс и его используешь

rekero
02.09.2017
16:58:00
Он же пишет, что есть редактирование

Google
Evgeniy
02.09.2017
17:02:30
Просто экземпляр класса нужен только один

Fedor
02.09.2017
17:03:31
тогда это какой-то диковатый синглтон получается...

Admin
ERROR: S client not available

Evgeniy
02.09.2017
17:03:57
Ну я просто спросил, реально ли это реализовать

Fedor
02.09.2017
17:04:03
реально

но есть куча проблем

к примеру с конкурентным доступом

Evgeniy
02.09.2017
17:04:32
что бы не нужно было в контроллере искать объект через Setting.first

Fedor
02.09.2017
17:04:47
один процесс данные получил из базы, второй их тут же отредактировал, у первого - невалидные данные

это для какого-нибудь логгера хорошо, когда все пишут в один файл и пофиг, в каком порядке

или если это куча настроек, чтение есть, редактирования нет

а если есть доступ и чтение, и при этом синглтон, то это все очень быстро взорвется

kolas
02.09.2017
17:08:55
а как это по хорошему делать? если например надо еще хранить число, которое каждый раз увеличивается при действии пользователей

100 пользователей нажимают кнопку +х к числу

когда-нибудь неправильно запишет

а есть оказывается lock

Anton
02.09.2017
17:13:56
а как это по хорошему делать? если например надо еще хранить число, которое каждый раз увеличивается при действии пользователей
Сделай просто "репозиторий" для модели. Пускай он сам решает как доставать и как сохранять (в транзакции или нет)

kolas
02.09.2017
17:13:57
http://api.rubyonrails.org/classes/ActiveRecord/Locking/Pessimistic.html

Google
Evgeniy
02.09.2017
17:19:44
Как то в коде это уж никак не логично

Fedor
02.09.2017
17:20:04
100 пользователей нажимают кнопку +х к числу
Лучше тогда вообще использовать какой-нибудь тип SERIAL из postgresql, и пусть оно само за инкремент отвечает

а потом брать last

Vladimir
02.09.2017
17:21:38
Как то в коде это уж никак не логично
а почему не логично? Тебе на каждый запрос надо его из базы загружать и потом в базу сохранять, все равно нужен метод, который делает загрузку, это может выглядеть как get_settings, а может как Settings.first, честно говоря, не вижу разницы

kolas
02.09.2017
17:22:42
и менять settings.first через lock

нормально будет думаю

Roman
02.09.2017
19:27:34
это вообще что за settings? глобальные настройки приложения которые редактируются админом?

Andrey
02.09.2017
19:52:10
Привет, что то сильно запутался с датами, не могу понять как их корректно сравнить, не приводя к integer Есть дата у AR объекта модели, и есть дата которая пришла в парамс с фронта @form.updated_at.class => AciveSupport::TimeWithZone Time.zone.parse(params["form_attributes"]["updated_at"]).class => ActiveSupport::TimeWithZone @form.updated_at => Fri, 01 Sep 2017 17:35:27 EDT -04:00 Time.zone.parse(params["form_attributes"]["updated_at"]) => Fri, 01 Sep 2017 17:35:27 EDT -04:00 @form.updated_at == Time.zone.parse(params["form_attributes"]["updated_at"]) => false @auth_form.updated_at.to_i == Time.zone.parse(params["form_attributes"]["updated_at"]).to_i => true

что я делаю не так?)

Ярослав
02.09.2017
20:08:47
почему в строчке, где получаем false отличается название параметра от всех остальных мест?

Andrey
02.09.2017
20:09:31
это я сокращал, чтобы попроще читалось в телеграме, но там забыл

в парамс приходит такая строчка params["form_attributes"]["updated_at"] => "2017-09-01T17:35:27.603-04:00"

ну кажется понял > Time.zone.parse(params["form_attributes"]["updated_at"]).to_f => 1504301727.6030002 > @form.updated_at.to_f => 1504301727.6035252

Страница 684 из 1594