
Mikhail
05.07.2016
22:04:36
такой как дьячук и выкинет)

Eugene
05.07.2016
22:05:35

Mikhail
05.07.2016
22:06:33
Да это критерий отбора даже для джунов. Вон на рубиджобс полистать. Везде тесты

Google

Pavel
05.07.2016
22:06:37
Ну я на второй вариант и намекал. Бот в виде постоянно работающего демона. Тянет с телеграма апдейты, парсит их, отсылает сообщения и т.д.

Eugene
05.07.2016
22:08:24
Через get updates это же печаль

Mikhail
05.07.2016
22:09:03
типа не феншуй

Pavel
05.07.2016
22:10:11
Всю жизнь так боты работали - для IRC, ICQ, XMPP, Skype. А тут вам чето не феншуй :\

Eugene
05.07.2016
22:10:27
Писал я. Видел как на хероку сервере он каждую секунду фигарит одну и ту же лог функцию

Pavel
05.07.2016
22:10:58
ты про getUpdates ?

Eugene
05.07.2016
22:11:04
Ну

Pavel
05.07.2016
22:11:32
Там можно устанавливать таймаут для отключения. Можно 30 секунд а не 1

Eugene
05.07.2016
22:13:17
А ну тогда норм. Только если таймаут 30 секунд то бот заторможенный становится не?

Pavel
05.07.2016
22:14:10
Нет, это будет аналог long polling механизма. Как только получаешь апдейт, тут же обрабатываешь его и идешь дальше висеть ждать запроса.
Если таймаут наступил, то тут же опять делаешь запрос на getUpdates и висишь еще 30 секунд.

Eugene
05.07.2016
22:15:17
А типо фаза сна и фаза бодроствования

Pavel
05.07.2016
22:16:29
Ну да. А в это время можешь в отдельном треде по таймеру рассылать спам по контактам :) Получается полноценный живой бот а не тупо реагирующий на входящий веб-хук.

Google

mardybm
06.07.2016
05:39:41
у меня бот на руби на веб хуках
делать лонг поллинг в 2016 - это моветон

Sergey
06.07.2016
06:50:45
Привет. попал в тупик, есть статья, есть коменнатрии к ней, хочу сделать так чтобы коментарии мог удалять только хозяин коментария или статьи, сделал before_action :correct_user перед destroy экшном в CommentsControler выглядет так:
def correct_user
if current_user == nil
flash[:danger] = t(:dont_allow_delet_comment)
redirect_to @article
end
if !current_user.articles.include?(@article) ||
!current_user.comments.include?(@comment)
flash[:danger] = t(:dont_allow_delete_comment)
redirect_to @article
end
end
но не работает как я ожидаю
гости немогут удалять как и полагаеться
хозяин статьи может удаолять как и пологаеться
но вот в чужой статье, свой комментарий ползователь удалить не может
ломаю голову почему=( уверен ответ простой... =(

Evgeny
06.07.2016
06:57:51
if comment.author == current_user else ?

mardybm
06.07.2016
07:01:49
в случае чужой статьи if !current_user.articles.include?(@article) равно true
вторую половину оно не смотрит

Vitaliy
06.07.2016
07:02:11
1. Давайте назовем before_action семантически корректно. Суть экшна в чем? Проверить, может ли пользователь удалить комментарий. authorize_comment_destroy, или просто authorize_destroy, учитывая, что мы находимся в контроллере комментариев и понятно, что речь идет о комментарии.
2. У нас несколько разных условий, но одно и то же следствие - ошибка во flash и редирект. Следствие можно вынести в отдельный метод.
def authorize_destroy
return authorize_failed unless current_user.present?
return authorize_failed if @article.owner != current_user
return authorize_failed if @comment.owner != current_user
true
end
def authorize_failed
flash[:danger] = t(:dont_allow_delete_comment)
redirect_to @article
end

I
06.07.2016
07:02:48
плюсик Виталию, а то куча if’ов выглядит малочитабельно

Sergey
06.07.2016
07:12:02
Написал как посоветовали, спасибо, но юзер в чужой статье всеровно не может удалять свои коментарии=(

Alexander
06.07.2016
07:16:31
return authorize_failed if @article.owner != current_user
return authorize_failed if @comment.owner != current_user верю что можно написать 1 условие к current_user

mardybm
06.07.2016
07:20:15
дальше оно не смотрит

Sergey
06.07.2016
07:21:34
понял) с || тоже не рабьотает
ка быть то
=(

Evgeny
06.07.2016
07:22:36
А почему нельзя простую проверку делать current_user == comment.author ?
Тогда не важно чья статья

Sergey
06.07.2016
07:23:37
ну у коммент может быть вообще без автора

Evgeny
06.07.2016
07:25:33
Поиск его коммента по куки или он просто оставил и все коммент навсегда ничейный?

Google

Evgeny
06.07.2016
07:26:10
т.е. если нашелся по кукисам, то может удалить, если нет, то все прощай

Sergey
06.07.2016
07:26:11
навсегда

Evgeny
06.07.2016
07:26:29
А его нужно удалять кому теперь, админу?

Sergey
06.07.2016
07:26:45
хозяину статьи
вроже рабюоатет всем спасибо

Evgeny
06.07.2016
07:28:44
А связи как настроены между статьей и комментами

Sergey
06.07.2016
07:29:18
статьи имеют много коментов

Evgeny
06.07.2016
07:35:12
Кстати, можно было бы вызывать метод correct_user, если только ты не автор статьи, иначе спокойно destroy comment

I
06.07.2016
07:46:12
def reject_user
flash[:danger] = t(:dont_allow_delet_comment)
redirect_to @article
end
def check_user_permissions
reject_user if current_user.nil?
if !current_user.comments.include?(@comment) &&
!current_user.articles.include?(@article)
reject_user
end
end
что насчет такого?)

ojab
06.07.2016
07:46:25
я бы вообще в модель Comment впилил
before_destroy :authorize_failed
def authorize_failed
return if owner == current_user || article.owner == current_user
errors.add(:owner, 'Whoops')
throw :abort
end
тонкие контроллеры, все дела

ojab
06.07.2016
07:47:05
в любом случае надо проверять что destroy возвратил

Adamtsov
06.07.2016
07:49:37
Вообще надо типа Cancacan или Pundit использовать в этом случае

ojab
06.07.2016
07:50:41
ох уж эти рельсовики, на каждый чих гем тащить
чем оно лучше callback'a здесь?

I
06.07.2016
07:51:12
проще написать свой небольшой аналог библиотеки работы с правами

Adamtsov
06.07.2016
07:52:15
before_destroy :authorize_failed
def authorize_failed
return if owner == current_user || article.owner == current_user
errors.add(:owner, 'Whoops')
throw :abort
end
это в модели из коробки вообще работать не будет, там current_user нет

mardybm
06.07.2016
07:55:17
гем лучше тащить потому что это задел на будущее
потом проще расширять

Google

mardybm
06.07.2016
07:55:38
да и pundit легкий по сути

Nikolay
06.07.2016
07:56:29
а я бы для взял Pundit илиcancancan и сделал нормальные полиси

ojab
06.07.2016
07:56:32

Nikolay
06.07.2016
07:56:51
собственно у сеня в бложике так и сделал. если у тебя нет прав то в скоупе ты этого комента даже не увидишь

Andrey
06.07.2016
07:57:22

Admin
ERROR: S client not available

Nikolay
06.07.2016
07:57:37
точнее в бложике скоупов нет, но если ты не автор коментов/поста/модератор - фиг тебе а не правка/удаление

Sergey
06.07.2016
08:10:43
c && правильно)
pundit не стал тащить потомучто это самая сложная проверка в прилодении

Nikolay
06.07.2016
08:13:37
pundit не стал тащить потомучто это самая сложная проверка в прилодении
ну от приложения зависит, но писать свои костыли когда тебе авторизация и аутентификация всё равно нужна - так себе идея. опять же, у меня допустим ни в моделях и в контроллерах логики почти нет сейчас, у меня в полиси Pundit'а прописаны скоупы, и юзер физически не сможет получить модель по id, которой в скоупе нет

Sergey
06.07.2016
08:14:53
я делал так в rails in action, удобно, но я какбы это приложение чисто для себя делаю, да и моделей кроме коментов артиклй и юзера больше не будет

Nikolay
06.07.2016
08:43:01

mardybm
06.07.2016
08:53:21

Nikolay
06.07.2016
08:54:19
был такой фан клуб аниме, кристал повер, шоб в ирц не путать, доцепил постфик
этому нику 15+ лет
во времена видеокассет и диалапа
33 в декабре

Кøе-ктø Геннадьевич
06.07.2016
08:56:08
т.е. тебе за 40?

Nikolay
06.07.2016
08:56:54
нет. 33 же. админского стажа с 96, официально с 2003
админ. программить в 12м начал, как раз студия вышла

Google

Кøе-ктø Геннадьевич
06.07.2016
08:57:24
понял

Vitaly
06.07.2016
08:58:57

Nikolay
06.07.2016
08:59:32
ну 2012

Vitaly
06.07.2016
08:59:47
ааа
подумал в 12 классе
и что за студия? а то подумал на Visual Studio C++ 6
она примерно тогда и вышла
в 2001 +- 2 года

Nikolay
06.07.2016
09:01:02
предлагаю в флеймилку свалить, а то мне тут это, неудобно распальцованными граблями печатать :)

Max
06.07.2016
09:03:23
флеймилка?

Кøе-ктø Геннадьевич
06.07.2016
09:03:32
https://telegram.me/rubyandrailsflame

yopp
06.07.2016
09:03:57
господи
ЕЩЁ
БОЛЬШЕ
ЧАТОВ

Nikolay
06.07.2016
09:13:32
это неша флеймилка

Eugene
06.07.2016
10:07:09

mardybm
06.07.2016
10:11:54
нет, там бот про сиськи