
Oleg
06.08.2017
14:53:23

pchellovod
06.08.2017
15:57:38

Смерть
06.08.2017
16:04:21
Да там и так все очевидно было, я уже тогда хотел рубистом работать, а туда пошел потому что заманили зарплатой и проект обещали интересный. Правда я не знал, что за проект, пока не начал работать. В итоге я работал лениво и безответственно.

spartakusQ
06.08.2017
17:03:05

Google

khu_an
06.08.2017
17:03:53

Смерть
06.08.2017
17:04:38

khu_an
06.08.2017
17:04:58

Смерть
06.08.2017
17:05:10
У кого?

spartakusQ
06.08.2017
17:09:07

Смерть
06.08.2017
17:09:22
Что?
я вас не понимаю

Alex
06.08.2017
18:22:14
Ребят, прошу помощи
Есть 3 модели: Юзер, Альбом, Трек
Юзер может добавить в избранное либо альбом целиком, либо треки по отдельности. Часть с альбомами сделал HABTM. А вот с треками не могу догадатся.

Fedor
06.08.2017
18:23:27
НАВТМ это что?

Смерть
06.08.2017
18:23:39
а с треками почему так же не сделать?
можешь ту же джоин таблицу даже использовать
только тебе нужно будет тогда навернуть на нее тип ресурса, который связываешь

Alex
06.08.2017
18:25:07
has and belongs to many

Google

Alex
06.08.2017
18:25:50
Смерть, про тип ресурса не очень понял. Что это?

Смерть
06.08.2017
18:27:12
ну у тебя джоин таблица это что-то типа user_id, album_id, так?

Alex
06.08.2017
18:27:23
ага

Смерть
06.08.2017
18:28:06
можешь добавить в нее track_id, например
а можешь сделать user_id, resource_id, resource_type

Alex
06.08.2017
18:29:12
Попробую первый вариант
Спасибо!

Lavrushchik
06.08.2017
19:31:02
вопрос.
может кто-нибудь обьяснить разницу между include и extend?
без отправления гугления и ссылки на статью на хабре?

Mark
06.08.2017
19:32:11
инклуд расширяет инстанс, экстенд - класс
если кратко

Lavrushchik
06.08.2017
19:33:48
с инклудом не оч понятно

Mark
06.08.2017
19:34:07
module ReusableModule
def module_method
puts "Module Method: Hi there!"
end
end
class ClassThatIncludes
include ReusableModule
end
class ClassThatExtends
extend ReusableModule
end
puts "Include"
ClassThatIncludes.new.module_method # "Module Method: Hi there!"
puts "Extend"
ClassThatExtends.module_method # "Module Method: Hi there!"

Lavrushchik
06.08.2017
19:35:28
extend позволяет вызвать напрямую из класса, без создания обьекта?

Mark
06.08.2017
19:35:38
да

Lavrushchik
06.08.2017
19:36:00
а инклюд только через созданный?

Mark
06.08.2017
19:36:11
ога

Lavrushchik
06.08.2017
19:36:18
о, спасибо, терь понял

Anton
06.08.2017
19:51:51
http://rubyblog.pro/2017/08/inversion-of-control-wtih-dry-container-for-hanami-events

Alex
06.08.2017
19:53:11
Застрял опять
Добавил track_id в join таблицу
Прописал отношения: Юзер habtm tracks и наоборот
Но при отрисовке формы, получаю ошибку от pg: "отношение "users_tracks" не существует"
В форме вот это:
.field
-Album.all.each do |album|
=hidden_field_tag 'course[album_ids][]', nil
=label_tag album.title, album.title
=check_box_tag 'course[album_ids][]', album.id, @course.album_ids.include?(album.id), id: album.title
-Track.where(album_id:album.id).each do |track|
=hidden_field_tag 'course[track_ids][]', nil
=label_tag track.name, track.name
=check_box_tag 'course[track_ids][]', track.id, @course.track_ids.include?(track.id), id: track.name
Что вообще почитать по подобной задаче? Казалась несложной, а сижу уже несколько часов.

Aleksey
06.08.2017
19:56:01

Google

Lavrushchik
06.08.2017
19:56:41

Re-L
06.08.2017
19:57:09
Нужно ли проверять данные на наличие запрещенных тэгов при записи в БД, или достаточно вызывать sanitize во view при выводе?

Aleksey
06.08.2017
20:01:18

Lavrushchik
06.08.2017
20:01:55

Aleksey
06.08.2017
20:03:07
Суть она как раз будет в конце вникания :)

pny
06.08.2017
21:16:25
Застрял опять
Добавил track_id в join таблицу
Прописал отношения: Юзер habtm tracks и наоборот
Но при отрисовке формы, получаю ошибку от pg: "отношение "users_tracks" не существует"
В форме вот это:
.field
-Album.all.each do |album|
=hidden_field_tag 'course[album_ids][]', nil
=label_tag album.title, album.title
=check_box_tag 'course[album_ids][]', album.id, @course.album_ids.include?(album.id), id: album.title
-Track.where(album_id:album.id).each do |track|
=hidden_field_tag 'course[track_ids][]', nil
=label_tag track.name, track.name
=check_box_tag 'course[track_ids][]', track.id, @course.track_ids.include?(track.id), id: track.name
а табличку то создал?

Alex
06.08.2017
21:17:41
я подумал, что достаточно будет первой
тогда добавлять в первую track_id было бессмысленно, так?

pny
06.08.2017
22:41:22

Amir
07.08.2017
05:00:05
Привет ребята
Кто нибудь подскажет, можно ли обойтись без гема
safe_attributes
У меня есть сторонная БД на майскл
Сделал соответсвующие модели и настроил коннект
но есть пара траблов
таблицы с полями 'type' что не понравилось рельцам
зафигачил в модели
self.inheritance_column = nil
вроде пашет
но всеравно в некоторых таблицах пишет ошибку, но уже другую
ActiveRecord::DangerousAttributeError: errors is defined by Active Record. Check to make sure that you don't have an attribute or method with the same name.
вроде тупо вылечил через гем
safe_attribues
но мне не нравиться, я же незнаю что он там еще делает за кулисами
и давно не обновлялся

Fedor
07.08.2017
05:15:11
type используется при полиморфных ассоциациях, created_at, updated_at для таймстампов и.т.д.


Fedor
07.08.2017
05:16:33
и использовать их параллельно не слишком хорошая идея, потом все это может очень некрасиво начать конфликтовать между собой

Amir
07.08.2017
05:16:55
согласен, но разработчики на пхп с этим не согласятся
и будут называть свои поля как им вздумается

Fedor
07.08.2017
05:17:15
а в эту базу еще кто-то пишет, или уже нет?
вполне можно просто базу переделать

Amir
07.08.2017
05:17:33
это вообще сторонная база

Fedor
07.08.2017
05:20:38
тогда можно попробовать отказаться от AR, использовать ROM, становящийся модным нынче, или сиквел

Google

Fedor
07.08.2017
05:20:44
но это уже обрезание рельс
или вместо моделей собирать классы с подключением отдельных модулей из AR но это тоже какое-то извращение

Amir
07.08.2017
05:23:15
а алиасинг полей нету?
допустим пусть в БД будет поле 'type'
AR пусть думает что это поле my_type

Fedor
07.08.2017
05:26:06
алиасинг то есть, но тоже будет в рамках AR, тоесть он по прежнему будет использовать поле type а все говорить, что это my_type

Admin
ERROR: S client not available

Fedor
07.08.2017
05:26:21
можно на самом деле просто убить эту ошибку
посмотреть откуда она вызывается в коде AR, и заманкипатчить этот метод в каком-нибудь модуле
и подключать его потом в пересекающихся моделях
хотя тоже решение не очень, просто заткнуть рот валидатору
но гем safe_attributes делает именно это
def instance_method_already_implemented?(method_name)
begin
return super(method_name)
rescue ActiveRecord::DangerousAttributeError
return true
end
return false
end
end
https://github.com/bjones/safe_attributes/blob/master/lib/safe_attributes/base.rb
https://github.com/rails/rails/blob/15ef55efb591e5379486ccf53dd3e13f416564f6/activerecord/lib/active_record/attribute_methods.rb#L87
вот так оно в AR райзится
собственно вот этот dangerous_attribute_method? можно замьютить

Nikita
07.08.2017
05:43:28
Ребят, а можно ли как-то через контроллер рисовать попап поверх вьюхи?
То есть рисуется вьюха определенного экшна, а поверх нее попап через ApplicationRouter
Сам попап - это .html.erb

Marat
07.08.2017
05:49:01
А можно подробнее? Что хотите получить в результате?
тут кажется нужно на js делать
может поможет http://devdocs.io/rails~5.1/actionview/helpers/capturehelper#method-i-content_for

Google

Nikita
07.08.2017
05:49:51
Та можно на ты
В ApplicationRouter обрабатывается нужно ли рисовать попап или нет, ну и соответственно нужно рисовать его
Самым нормальным способом

Amir
07.08.2017
06:30:50
Нужно сканировать документ прямо со сканера, в браузере. и прикрепить в поле file
нашел scanner.js
https://asprise.com/document-scan-upload-image-browser/web-scanner-source-code-open-order.html
вроде платный
Есть альтернативные бесплатные?

Fedor
07.08.2017
06:57:58
https://ru.wikipedia.org/wiki/TWAIN
http://www.dynamsoft.com/blog/document-imaging/build-web-page-scan-documents-to-pdf/#_Step_3
сам не делал, но scanner.js - это имплементация этого протокола, можно и самому написать, если денег жалко
или поискать по free TWAIN js library
пользователь получает кусок HTML со скриптами и картинками
popup вылезает динамически после загрузки всего этого добра в бразуер средствами JS
либо ты сразу вставляешь этот попап в открытом виде поверх окна
но это не самое красивое решение
соответсвенно ты можешь сделать во вьюхе кусок с условным оператором, который либо рендерит этот попап либо нет. И сделать js который на .ready будет показывать окно, если найдет