@rubylang

Страница 1492 из 1684
Александр
11.05.2018
12:33:42
Вот, таки получилось, спасибо User.joins(:team_members).where(present_type: :business, business_team_members: { business_account_id: User.select(:id) })

Иван
11.05.2018
12:43:07
Вот, таки получилось, спасибо User.joins(:team_members).where(present_type: :business, business_team_members: { business_account_id: User.select(:id) })
у тебя в business_account_id может быть либо id какого то юзера либо id какой то другой модели?

Иван
11.05.2018
12:44:24
я тогда не понимаю в чем смысл User.select(:id)

Google
Александр
11.05.2018
12:53:55
я тогда не понимаю в чем смысл User.select(:id)
есть пользователи у которых team_account является этим же пользователем, а есть такие у которых team_account это другой пользователь, и мне нужен именно первый случай

Dm
11.05.2018
12:54:29
Я сгорел )

Богдан
11.05.2018
12:56:45
господа, а подскажите как сгенерировать уникальный случайный токен? Почему уникальный, потому что по нем будет идентифицироватся пользователь

Или лучше бессрочный jwt заюзать?

ojab
11.05.2018
12:58:00
SecureRandom.что-нибудь

hex/uuid/whatever

Александр
11.05.2018
13:02:05
User.where("team_account_id = id")
у таблицы нет такого поля или ключа, оно прокидывается через другую таблицу

Sergii
11.05.2018
13:02:30
ну укажи тогда ту таблицу )

Богдан
11.05.2018
13:02:50
SecureRandom.что-нибудь
сенкс, решил jwt заюзать, все-таки там можно пайлоад передавать, там самым проще искать кому принадлежит токен

Sergii
11.05.2018
13:03:02
User.where("та_таблица.team_account_id = id")

Иван
11.05.2018
13:03:52
у таблицы нет такого поля или ключа, оно прокидывается через другую таблицу
а ну заджоини ее. можно тогда это условие вообще в ON прокинуть

Google
Sergii
11.05.2018
13:04:14
угу.

Александр
11.05.2018
13:08:25
Ну да, так по проще запрос выглядит : User.joins(:team_members).where("business_team_members.business_account_id = users.id")

Иван
11.05.2018
13:11:02
Ну да, так по проще запрос выглядит : User.joins(:team_members).where("business_team_members.business_account_id = users.id")
ага, можно еще заджойнить сразу по этому условию. получится что то вроде User.joins("INNER JOIN business_team_members ON business_team_members.business_account_id = users.id")

Иван
11.05.2018
13:17:55
в первом случае результатом джоина будет таблица в которой юзер член какой то группы и дальше ты фильтруешь что бы он был не просто членом а "создателем". Во втором случае в результаты джойна не будут попадать обычные члены группы.

ну и по идее это будет побыстрее

Александр
11.05.2018
13:20:18
ага, можно еще заджойнить сразу по этому условию. получится что то вроде User.joins("INNER JOIN business_team_members ON business_team_members.business_account_id = users.id")
забавно но этот способ плохо работает с .or(), ругается на несоответствие запросов, и почему-то на какой-то :references

Богдан
11.05.2018
13:55:49
товарищи, а в какой хуке лучше всего ловить, например если поле поменялось, то значения угого поля нужно обнулить?

Артур
11.05.2018
14:09:57
if: :name_changed?

Alexander
11.05.2018
14:10:30
Всем привет. Кто-нибудь знает как в ActiveAdmin программно Tab активным сделал?

Богдан
11.05.2018
14:14:07
if: :name_changed?
хм ... так это в каком хуке писать after_save?

Darth
11.05.2018
14:33:15
Может в бифо?

Артур
11.05.2018
14:38:26
Dmitry
11.05.2018
15:11:23
или ты про какой таб?

Богдан
11.05.2018
15:19:44
как пробовал?
еще как бы никак, я просто думаю, есть ли смысл вообще, просто выйдет что будет в любом случаи +1 запрос, если в before_create, то чтобы получить старое значение, если в after_create, что бы сохранить значение

может проще сразу с фронта передавать значение какое положить и тем самым самым выйдет только запрос обновления и все

или вообще можно же не использовать ActiveRecord а написать самому запрос, типа UPDATE table_name SET field = CASE WHEN field1 = #{var_field} THEN '' ELSE field END, field1 = #{var_field}

Alexander
11.05.2018
15:35:25
class: 'active' ? там разве так нельзя?
который tab do panel do #another stuff end end

Google
Dmitry
11.05.2018
15:36:50
который tab do panel do #another stuff end end
tab :active do - так пробовал?

Alexander
11.05.2018
15:39:22
там если имя есть, то вообще не ктати - ошибка, пробовал active: true

Alexander
11.05.2018
15:40:39
undefined method `fetch' for :active:Symbol

делал так tab 'Content', :active do

Dmitry
11.05.2018
15:42:16
а ноборот tab :active, 'Content'

Alexander
11.05.2018
15:43:54
не там def tab(title, options = {}, &block) - вроде такой метод внутри

Богдан
11.05.2018
16:06:43
тебе нужен before_validation и AR::Dirty https://apidock.com/rails/ActiveRecord/Dirty/changed%3F
а почему именно before_validation тут же будет меняться значение, логичней в before_save

s
11.05.2018
16:41:45
если будут меняться значения, то логичней их провалидировать перед сохранением

Nikita
11.05.2018
17:29:56
За before_validation надо сразу по рукам бить

ojab
11.05.2018
17:30:54
менять после валидации и получать невалидную модель?

Nikita
11.05.2018
17:31:35
А не проще нормальные данные сразу подготовить?

Чем юзать колбек который на каждый чих будет творить херню?

D
11.05.2018
18:11:13
Подскажите как лучше данные для статы дэшбордов на рельсе собирать? Может есть готовые решения?

Nikita
11.05.2018
18:12:09
wut?

Darth
11.05.2018
19:34:01


Немножк офффтопа ^

s
11.05.2018
20:03:35
Чем юзать колбек который на каждый чих будет творить херню?
Я не думаю, что в это конкретном случае нужно было рассказывать про домены, интеракторы и это все

В целом, согласен, менять модель в коллбеке перед сохранением не стоит

Google
Nikita
11.05.2018
20:04:17
Это можно и без этих штук сделать

s
11.05.2018
20:05:10
Тогда это путь к неконсистентной логике

Где-то вспомнили про вызов нужного инстанс метода перед сохранением

Где-то забыли

Admin
ERROR: S client not available

s
11.05.2018
20:05:46
И выгребли

Когда/если дойдёт дело до тестов ко всей этой кухне автор вопроса станет ближе к просветлению

Mikhail
11.05.2018
20:12:38
Что плохого в валидациях в условном form object`е?

Pavel
12.05.2018
01:54:42
Тогда это путь к неконсистентной логике
Нет. Классический Rails Way – путь вот к такому

https://github.com/discourse/discourse/blob/master/app/models/topic.rb

Когда/если дойдёт дело до тестов ко всей этой кухне автор вопроса станет ближе к просветлению
Тесты всегда проще писать на изолированные классы и прокидывать зависимости через DI

Где-то вспомнили про вызов нужного инстанс метода перед сохранением
Бывает и так, что где-то нужно вызывать, а где-то нет.

Amit
12.05.2018
04:10:07
Подскажите, а как в строке посчитать кол-во конкретно используемых слов? Например есть строка “hello world hello” Как посчитать кол-во hello?

Dmitry
12.05.2018
04:26:13
string.scan(/word/).count

Amit
12.05.2018
04:26:16
Я реализовал это так: string = "hello world hello hello" string.count("hello") / 5 5 это кол-во букв в слове, но мне кажется, что-то здесь не так :)

string.scan(/word/).count
Благодарю!

Dmitry
12.05.2018
04:29:15
в моем методе есть косяк что если искомое слово будет как часть другого встречаться в строке оно тоже посчитаеться

но в твоем способе такой же косяк

Amit
12.05.2018
04:31:16
Ага, только хотел написать

Dmitry
12.05.2018
04:35:21
вот в лоб решение x = 0 , a.scan(/\w+/) {|w| x+=1 if w == 'hello' }

Google
Dmitry
12.05.2018
04:36:32
Наверняка можно просто через регулярное сделать но яв них не силен

Ага, только хотел написать
string.split(' ').count('hello')

вот самое нормальное)

Amit
12.05.2018
04:47:31
Точно, чот я на split не подумал :(

string = "hello worldhello hello" string.split(' ').count('hello')

Вот так выдаст 2

Спасибо Dmitry за твое время

Sergii
12.05.2018
04:52:35
string = "hello worldhello hello." string.split(' ').count('hello') а так выдаст один

Сильно зависит от того, что за текст и кодировка.

Ēľ Ċāƥīāŋ Ƭīʋȷɍēś
12.05.2018
04:56:40
Вот так выдаст 2
а нельзя сделать сплит и посчитать клво элементов, то есть слов?

Sergii
12.05.2018
04:56:44
string.split(%r{\W}).count('hello') => 2 так чуть лучше, бьем по не буквам

Ēľ Ċāƥīāŋ Ƭīʋȷɍēś
12.05.2018
04:56:51
ведь после сплит получится массив слов?

типа string.split(' ').size?

Sergii
12.05.2018
04:58:26
у него задача определенное слово посчитать

string = "привет, мой друг, привет" => "привет, мой друг, привет" 2.3.1 :098 > string.split(%r{\W}).count('привет') => 0 FYI

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