@rubylang

Страница 155 из 1684
Mikhail
05.07.2016
22:04:36
такой как дьячук и выкинет)

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
Написал как посоветовали, спасибо, но юзер в чужой статье всеровно не может удалять свои коментарии=(
потому что у тебя обрывается на втором условии return authorize_failed if @article.owner != current_user

дальше оно не смотрит

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 и сделал нормальные полиси

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, удобно, но я какбы это приложение чисто для себя делаю, да и моделей кроме коментов артиклй и юзера больше не будет

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
нет, там бот про сиськи

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