Size: a a a

2020 April 27

E

Eugene in RubyRush
SundayNight
вот для этого и хочу PAPI, чтобы инфу по продуктам таскать на сторону
я особо не в теме, но знаю, что куча есть инструментов (и целых компаний многомиллионых) для подкручивания цен на твои ордеры на продажу в амазоне
источник

A

Anton in RubyRush
Есть вот такой гем, решает все проблемы валидации параметров, а также их кастинга или других операция на ними. https://github.com/nicolasblanco/rails_param
источник

E

Eugene in RubyRush
Anton
Есть вот такой гем, решает все проблемы валидации параметров, а также их кастинга или других операция на ними. https://github.com/nicolasblanco/rails_param
спс, погляжу
источник

A

Anton in RubyRush
Так же для nested hash
источник

E

Eugene in RubyRush
Anton
Так же для nested hash
ну следующей кейс - это логика валидации на основе ЗНАЧЕНИЯ поля
источник

E

Eugene in RubyRush
entity: {
 type: :legal,
 title: ".."
}

# или
entity: {
 type: :private,
 name: "...",
 last_name: "..."
}


типа того
источник

E

Eugene in RubyRush
(тут всё ещё соблюдается условная граница "не лезет в БД", отграничивающая область деятельности данного "предвалидатора" от ActiveRecord-валидаций)
источник

A

Anton in RubyRush
Тогда почему мы решаем проблему на уровне парам? 😂  Если можно натолкать валидаций в модель
источник

E

Eugene in RubyRush
неудобно модели на каждый хеш создавать
источник

E

Eugene in RubyRush
плюс потом ошибки из них агрегировать
источник

A

Anton in RubyRush
А предполагается, что филда в модели сама по себе хеш? Немного странно, если пришел хеш, почему для этого нет отдельный модели через ассоциацию, которая в свою очередь для свой односложной (не nested) филды вернет такую же односложную ошибку. Да, если мы храним JSON в БД, ошибку обработать посложнее. Но первое решение что приходит такое - этот гем для каждого parama принимает proc через ключ transform: proc -> .... В прок дать что-то что валидирует кастомно и выкидывает exception
источник

A

Anton in RubyRush
...
 param! :nested_param, String, transform: proc -> (field) { raise StandardError if field.not_valid? }
источник

A

Anton in RubyRush
В каждом проке прописать уже руками название филды
источник

A

Anton in RubyRush
В аргс к ошибке
источник

AM

Anton Mishkevich in RubyRush
Добрый вечер! Может кто-нибудь подскажет? на компе в vs code код работает, на сайте codewars выдает ошибку https://www.codewars.com/kata/54e6533c92449cc251001667/train/ruby

def unique_in_order(iterable)
   arr1 = iterable.split("")
   arr2 = []
   arr2[0] = arr1[0]
   i = 0
   while i < (arr1.length - 1) do
       if arr1[i] != arr1[i + 1]
           arr2 << arr1[i + 1]    
       end
       i += 1
   end
   return arr2.to_s
end

puts unique_in_order('AAAABBBCCDAABBB')
источник

S

SundayNight in RubyRush
Anton Mishkevich
Добрый вечер! Может кто-нибудь подскажет? на компе в vs code код работает, на сайте codewars выдает ошибку https://www.codewars.com/kata/54e6533c92449cc251001667/train/ruby

def unique_in_order(iterable)
   arr1 = iterable.split("")
   arr2 = []
   arr2[0] = arr1[0]
   i = 0
   while i < (arr1.length - 1) do
       if arr1[i] != arr1[i + 1]
           arr2 << arr1[i + 1]    
       end
       i += 1
   end
   return arr2.to_s
end

puts unique_in_order('AAAABBBCCDAABBB')
return arr2.to_s
источник

S

SundayNight in RubyRush
to_s выпилите
источник

S

SundayNight in RubyRush
в тесте ждут массива, а вы им строку
источник

А

Александр in RubyRush
тут еще можно arr2.map(&:to_s) - вот только смысла не видно )
источник

AM

Anton Mishkevich in RubyRush
SundayNight
в тесте ждут массива, а вы им строку
бокал вина этому господину👌
источник