
Максим
06.02.2018
11:49:52
есть его дочерний класс
у него свой массив константа
и хотеломь бы чтоб он тоже генерировал свои методы

kolas
06.02.2018
11:50:24
class_eval или чтото типа такого было

Google

Максим
06.02.2018
11:51:33
ну он вроде помогает если я знаю какие у меня будут дочерние классы
а если не знаю?
или типа self.class_eval?

Lupsick
06.02.2018
11:54:28

kolas
06.02.2018
11:55:28
.to_a.sort { . }

Lupsick
06.02.2018
11:56:44
ты пахеду не понял
насортировал тебе на лицо короче

Roman
06.02.2018
12:24:19

Максим
06.02.2018
12:25:06
в это обернуть методыв отцовском классе и потом вызывать в дочерних или что?

Roman
06.02.2018
12:25:57
вызывать не надо

Vasiliy
06.02.2018
12:26:02
ты чёто не то делаешь

Roman
06.02.2018
12:26:16
этот метод вызывается сам, когда наследуешь

Google

Roman
06.02.2018
12:26:51


Максим
06.02.2018
12:30:04
ты чёто не то делаешь
ну мне нужно чтоб дочерние классы автоматом генерировали себе методы в соответствии со своим массивом методы, как генерировать показано в отцовском классе
class CoreQuery
attr_reader :relation, :params
ASSOCIATIONS = []
def initialize(relation, search_params)
@relation = relation
@search_params = search_params
CoreQuery.generate_methods
end
def self.generate_methods
p ASSOCIATIONS
ASSOCIATIONS.each do |method|
define_method("with_#{method}") do
p "generated with_#{method}"
relation.joins(method.to_sym)
end
define_method("number_of_#{method}") do
p "generated number_of_#{method}"
relation.send("with_#{method}".to_sym)
.group('table_name.id').having("count(#{method}.id) = ?", search_params["#{method}_count".to_sym])
end
end
end
def complex_search
raise NotImplementedError
end
def table_name
relation.name.downcase.pluralize
end
end
короче вот отцовский класс

Vasiliy
06.02.2018
12:30:29
ну я и говорю - что-то не то

Максим
06.02.2018
12:30:37
почему?
мне не придётся вообще ни с чем тогда разбираться
надо поиск по новой колонке? ну пришли запрос у меня всё уже сгенерировано

Vasiliy
06.02.2018
12:31:12
когда тебе писали про квери обжект имели ввиду просто объект который делает один запрос

Максим
06.02.2018
12:31:15
нужна особая сортировка? пришли запрос всё уже сгенерено

Vasiliy
06.02.2018
12:31:18
а не блять всё на свете

Максим
06.02.2018
12:31:29
хорошо я переименую это в сервис
сейчас у меня вопрос в другом

Roman
06.02.2018
12:31:44
проблема в том, что это сложно поддерживать будет

Максим
06.02.2018
12:31:52
как сделать чтоб дочерние классы генерировали отцовские методы

Roman
06.02.2018
12:32:41
потом появится ассоциация, для которой нужен особый метод

Vasiliy
06.02.2018
12:32:43
пиздец ну да ну д
появится название другое, которое не соответствует фронту

Roman
06.02.2018
12:33:09
и тебе придется ломать отцовский класс, чтобы уместить все

Максим
06.02.2018
12:33:10

Google

Vasiliy
06.02.2018
12:33:21
+, а потом поломаются дети
ну у тебя есть тесты?

Максим
06.02.2018
12:33:35

Roman
06.02.2018
12:33:47
короче конкретно эта проблема решается через self.inherited

Vasiliy
06.02.2018
12:33:52
шта?

Максим
06.02.2018
12:33:55
контроллеры делают базовый рельсовский круд кроме вот этой штуки
модели пустые
только связи прописаны

Vasiliy
06.02.2018
12:34:22

Максим
06.02.2018
12:34:49

Максим
06.02.2018
12:35:02
и как тестировать мета методы?

Vasiliy
06.02.2018
12:35:17
инициализацию и метод генерации

Максим
06.02.2018
12:35:19
я хочу чтобы у приложения была emergence
пока я всё ещё не знаю как в итоге будет и поэтому тесты не вижу смысла писать
вот будет работать - напишу тесты придумаю эджкейсов

Vasiliy
06.02.2018
12:37:06
а не думал сначала написать тестов, прописать там как примерно всё должно работать и на основе этого писать реализацию?

Максим
06.02.2018
12:37:28
если честно не очень понимаю зачем нужен TDD

Google

Максим
06.02.2018
12:37:36
тесты нужны
но зачем их писать заранее не понимаю

Roman
06.02.2018
12:37:49
мета-абстракции сложно тестировать

Максим
06.02.2018
12:37:54
всё же может совсем передуматься переписатсья посредине написания

Vasiliy
06.02.2018
12:38:16
ну чтобы ты к примеру не гадал как всё потом будет работать, а просто набросал это

Roman
06.02.2018
12:38:25

Zamira
06.02.2018
12:38:26

Максим
06.02.2018
12:38:26
так я и сейчас гадаю как будет работать

Admin
ERROR: S client not available

Roman
06.02.2018
12:41:00
иначе ты все время будешь пилить абстрактные вундервафли

Максим
06.02.2018
12:41:19
ой да функционал там совсем простецкий
пара моделей пара крудов
просто времени до сдачи ещё две недели
вот и пилю вандервафлю чтоб потом не париться
потому что если всё реально будет работать как я задумал то кучу времени сэкономит
а если нет то легко можно будет убрать из функционала т.к. всё в отдельных классах
типа по сути это просто поиск и сортировка, просто они будут генерировать себя сами в зависимости от колонок модели и связей моделей

Google

Максим
06.02.2018
12:42:46
и работать будет на основе запроса конкретного

Vasiliy
06.02.2018
12:43:12
а ты не думал ransack взять?

Максим
06.02.2018
12:43:19
типа если ключ параметра пришедший кончается на _ids значит такой запрос в модель
если _count то другой и тд
ой
ну походу почти это и пишу
блин обидно даже
думал клёво напишу
а оно уже есть

Igor
06.02.2018
13:04:59
ребят, есть ли возможность в paperclip создать стиль с такими же размерами, как оригинал. то есть что -то вроде
styles: { mobile: '300x300#', original_two: '????' }

Женя
06.02.2018
13:06:26
всем привет, у меня есть url
url = http://localhost/?standart=0
как сделать redirect_to url без пареметра
standart
, тоесть
url = http://localhost/
?
такой вариант есть но кажется он плохой ?
uri = URI(url)
uri.query = nil
uri.to_s

Korol
06.02.2018
13:10:28
url.split('?')[0]

Dmitriy
06.02.2018
13:11:05
да вполне
.first

Женя
06.02.2018
13:17:22
спасибо)

Andrey
06.02.2018
13:17:36
нет u = URI(url)
#{u.scheme}://#{u.host}" так лучше

Lavrushchik
06.02.2018
13:20:01
вопрос по mini_magick
код в аплоадере.
version :thumb do
process resize_to_fit: [350, 350]
end
посылаю картинку в базу, оно её пытается писать, но вызывает rollback. причём почему так происходит, в логах нигде не написано.
в чём может быть дело?

Mayar
06.02.2018
13:32:54
Проверь наличие ошибок при сохранении модели. Выведи в консоль объект.errors

Lavrushchik
06.02.2018
13:39:34
Failed to manipulate with MiniMagick, maybe it is not an image?
однако, прикольно такое видеть, когда посылаешь изображение, а оно "не изображение"

Mayar
06.02.2018
13:43:13
Мож картинка битая, мож ImageMagick кривой....

Lavrushchik
06.02.2018
13:43:56
{:photos=>[{:error=>"Failed to manipulate with MiniMagick, maybe it is not an image? Original Error: identify /var/folders/km/_9jh9_tx0fd9f8syblm29mrw0000gn/T/mini_magick20180206-4751-1fc3dnr.png failed with error:\nidentify: unable to load module `/usr/local/Cellar/imagemagick/6.9.7-3/lib/ImageMagick//modules-Q16/coders/png.la': file not found @ error/module.c/OpenModule/1302.\nidentify: no decode delegate for this image format `PNG' @ error/constitute.c/ReadImage/504.\n"}]}
подразумеваю, что меджик

Mayar
06.02.2018
13:44:41
Точно!

Lavrushchik
06.02.2018
13:48:11
блин, ну и секс с mini_magick