
Artur
05.10.2017
10:09:04

s
05.10.2017
10:10:33
при ревью кода заморских коллег можно и не такое увидеть)

Sergey
05.10.2017
10:10:52

Google

s
05.10.2017
10:11:37
потому что initialize не работает для аудит логов на изменения?)

Igor
05.10.2017
10:11:42
А как колбэки в тестах отключаются? if ENV["RAILS_ENV"] == 'test'?

Sergey
05.10.2017
10:14:02

s
05.10.2017
10:16:05
ну если дефолтные параметры совмем простые, то они вообще должны быть в базе
но “дефолтным” может быть и параметр, который зависит от контекста сохраняемой модели
например, пермалинк, который может быть указан, а может сгенериться на базе тайтла
делаешь фабрику
юзаешь коллбеки фабрики, чтобы отключить и влючить коллбеки модели
больше коллбеков!

Sergey
05.10.2017
10:18:57

Vasiliy
05.10.2017
10:29:43
и проще во вью такое делать
чем потом - о, нам теперь надо всё с маленькой буквы и блокирующий апдейт

Artur
05.10.2017
10:31:46

Mighty
05.10.2017
10:34:21

Google

Vasiliy
05.10.2017
10:36:27
Имелось ввиду сохранение как есть и манипуляции с предложением на другом уровне

pny
05.10.2017
10:38:46

Artur
05.10.2017
10:39:24

pny
05.10.2017
10:40:23
Таки почему состояние объекта меняется неявно, когда ты его схороняешь?

Anon
05.10.2017
10:49:39
Посоны, поясните за магию рельсов.
Есть классовый метод модели. В нём self - само собой сам класс. Даже если он вызывается через scope - класс. Если использовать какой-то ОРМ метод вроде where, то итоговая квери чейнится со скоупом. Как можно запустить эту квери в методе чтобы работать в нем уже с ActiveRecord::Relation?

Mighty
05.10.2017
10:50:24

Anon
05.10.2017
10:51:42
Хотя бы иметь возможность написать метод self.foo
который можно было использовать как Model.where(a: :b).foo

Mighty
05.10.2017
10:52:06
Ну ты понимаешь что возвращает where и где должен будет объявлен твой foo?

Anon
05.10.2017
10:54:00
Я подозреваю что ActiveRecord::Relation, но мне непонятно как работать с этим lazy execute активрекорда

Mighty
05.10.2017
10:54:44
В смысле «как»

Anon
05.10.2017
10:54:51
Т.е. Model.where(a: :b) не возвращает Relation до того как началось обращение к какой-то из моделей

Mighty
05.10.2017
10:54:52
Ты сделать что хочешь-то?

Anon
05.10.2017
10:55:39
Как объявить вызов этих результатов?

Mighty
05.10.2017
10:55:52
Наиболее классическое - .to_a
если where

Anon
05.10.2017
10:55:57
вооот
а теперь смотри
def self.foo
puts class #=> Class
self.to_a #=> undefined local variable or method `to_a'
end

Mighty
05.10.2017
10:58:01
очевидно что у твоего класса нету метода to_a

Google

Anon
05.10.2017
10:58:16
Мой класс - модель

Mighty
05.10.2017
10:58:58
Ты по прежнему не можешь ответить на один простой вопрос - «ты что сделать то хочешь?»

Anon
05.10.2017
11:01:53
Ок.
Я хочу написать метод, который можно было бы вызывать как Model.where(a: :b).foo и который бы работал с результатом вызова ActiveRecord::Relation полученным от Model.where(a: :b)

Mighty
05.10.2017
11:03:41
Сделай QueryObject и прокидывай туда скоуп
внутри QueryObject работай с результатами скоупа
Вызывай QueryObject по вызову foo в модели

Anon
05.10.2017
11:05:29
Дэээ
Спасибо конечно, но как это можно иначе сделать я и так знаю, мне интересна возможность реализации как я сказал.

Mighty
05.10.2017
11:07:15
Ты пытаешься сделать это криво
Результат работы скоупов - relation, relation не имеет никакой связи с твоей моделью кроме того что результаты выполнения relation обворачиваются в объекты твоего класса
Логичным образом - результат работы скоупа не твой класс, а коллекция

Anon
05.10.2017
11:10:44
Хм, ну да, логично

Anon
05.10.2017
11:17:27
Ок, узнал, можно достать relation изнутри классового метода через where({}), может кому пригодится
Вообще юзкейс был такой что мне необходимо полученные данные структуризовать и вернуть в виде многоуровнего хэша. Мне кажется MyModel.where(...).arrange поудобней будет

Mighty
05.10.2017
11:20:11
Structurizer.arrange(MyModel.where())
Модель данные хранит
А не структурирует

Nikita
05.10.2017
11:34:53
Ребят, может кто-то подсказать сервис карт, чтобы можно было рисовать маршрут по большому кол-ву точек?
То есть где ездила определенная машина в таком-то интервале, в таком-то и т.д.

Serghei
05.10.2017
11:39:16
КТо сталкивался : Can't verify CSRF token authenticity.??????

Google

Serghei
05.10.2017
11:39:42
локально работает. на сервере не работает

Fedor
05.10.2017
11:39:47
нужно scrf в форму добавить
https://stackoverflow.com/questions/8503447/rails-how-to-add-csrf-protection-to-forms-created-in-javascript

Serghei
05.10.2017
11:40:25
в форме и хиден филде стоит

Artur
05.10.2017
11:45:37

Admin
ERROR: S client not available

Igor
05.10.2017
11:46:29

Serghei
05.10.2017
11:48:17

No
05.10.2017
11:49:00
если да, то могу подсказать, в чем проблема

Serghei
05.10.2017
11:49:24
нет.. 5 с начала

No
05.10.2017
11:49:44
там в конфигаъ есть параметр отвечающий за csrf, он вроде в четвертой рельсе по дефолту false
а в пятой - true

Serghei
05.10.2017
11:49:53
есть одно но... у меня нет бд.. ни активрекорда..ничего

No
05.10.2017
11:50:11
в конфигах рельсовых я имею ввиду
или энваренмента

Serghei
05.10.2017
11:50:27
Rails.application.config.action_controller.per_form_csrf_tokens = true

No
05.10.2017
11:50:43
не, это не то вроде как

Google

Serghei
05.10.2017
11:52:40
другое не стоит

Vasiliy
05.10.2017
11:53:01
там мне рассказывали в 5 рельсе вроде сделали для каждой формы свой csfr

[Anonymous]
05.10.2017
11:54:49
If a product that falls under this guarantee is found to be counterfeit, you will get a full refund (shipping costs included). https://goo.gl/cRwWKn

Karina
05.10.2017
12:55:38
кто делал в form_object подтверждение условий по чекбоксу?
attribute :terms, Boolean
validates :terms, acceptance: true
в объекте terms = true, но всё равно ошибка вываливается

Alexander
05.10.2017
13:16:41

Karina
05.10.2017
13:25:29

Alexander
05.10.2017
13:26:09
Пришлите пожалуйста код форм объекта и входящие параметры
Pastebin-ом лучше
Или что там сейчас модно.

Fedor
05.10.2017
13:26:49
в готовой модельке перед валидацией, или в параметрах
может его strong_params отрезает?

Karina
05.10.2017
13:28:41
ну, собственно, создаю form object с параметрами
контроллер:
f = Form.new(form_params)
сам form object:
attribute :terms, Boolean
validates :terms, acceptance: true
вьюха:
<%= f.check_box :terms %>
после
f = Form.new(form_params)
f.terms уже равно true

Alexander
05.10.2017
13:32:34
Форм объект Virtus использует?

Karina
05.10.2017
13:33:33
да

Fedor
05.10.2017
13:34:41
это на ActiveType или нет?
ActiveType knows all the types that are allowed in migrations (i.e. :string, :integer, :float, :decimal, :datetime, :time, :date, :boolean)
если да, то лушче попробовать в виде :boolean сделать