@proRuby

Страница 1326 из 1594
Igor
01.08.2018
15:06:32
ах, упустил - что ручками это делается - а зачем тогда мутировать params? лучше новый объект со всеми данными создать
Проводится много манипуляций с парамсами, и в конце я просто делаю Object.create(attributes) где attributes это измененный объект params

а блин их переименовали ActionController::Parameters
То есть когда вручную заполняю массив из nested_attributes, заполнять не хешами а ActionController::Parameters, и добавить в permitted ?

Roman
01.08.2018
15:08:08
ага

но вообще хз чет не должно быть такого

Google
Roman
01.08.2018
15:08:33
можешь показать полный бектрейс?

аа это нестед аттрибуты, может и ругаться... я просто так давно уже не делал =)

у тебя там accept_nested_attributes_for ?

Igor
01.08.2018
15:09:36
да

абстрагированно это выглядит примерно так созданный руками ключ в парамс params[:promo_materials_attributes =[{"banner"=>Paperclip::DataUriAdapter: image.png, "action_url"=>"askldjflkasjdf", "banner_width"=>1256.0, "banner_height"=>420.0}] params.permit(promo_materials_attributes: [:banner, :banner_height, :action_url, :banner_width], )при выполнении Plan.new(promo_materials_attributes: params[:promo_materials_attributes]) #=> ActiveModel::ForbiddenAttributesError Exception: ActiveModel::ForbiddenAttributesError

Roman
01.08.2018
15:13:12
ты в params прям пишешь?

Igor
01.08.2018
15:13:44
да, уж так повелось изначально, много действий мутирующих парамс происходит

Roman
01.08.2018
15:14:14
ну ты можешь в конце сделать to_unsafe_hash

но это как и написано unsafe

Igor
01.08.2018
15:14:44
будкт тоже что и permit! ?

Roman
01.08.2018
15:15:01
почти, будет простой хеш

permit! оставляет все равно ActionController::Parameters

а to_unsafe_h делает хеш

Google
Roman
01.08.2018
15:15:55
ну или permit!.to_h

тот же результат будет

Igor
01.08.2018
15:19:36
Да, я понял, так работает. Но думаю это очень не безопасно

почти, будет простой хеш
Спасибо в любом случае ?

Roman
01.08.2018
15:22:34
Да, я понял, так работает. Но думаю это очень не безопасно
ну безопасней сделать сначала правильный permit(:field), потом сделать to_h, а потом уже напихивать туда остальное

O
01.08.2018
15:34:50
Только хардкор

rabbitkate
01.08.2018
16:44:40
всем привет. подскажите пожалуйста. я использую выражение str.scan(/\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b/i) для поиска email в строке. находит корректно, но email возвращается в квадратных скобках. как получить чистый email? перерыла уже весь гугл

rabbitkate
01.08.2018
16:47:33
Квадратный кавычко?
ой. поправила

rabbitkate
01.08.2018
16:51:16
Crypt
01.08.2018
16:53:40
Срабатывает, только массив в строку, поэтому и скобки появились. Нужно конкретный элемент массива приводить к строке

rabbitkate
01.08.2018
16:56:22
поняла, благодарю

Dima
01.08.2018
17:36:21
люди узколобые. им когда-то 20 лет назад сказали что микрософт зло и они до сих пор в это верят
https://youtu.be/SjBkpz2ppj8?t=8m51s Пару минут про законы существования сообществ и врагов. Интересно.

n.digits.sort_by(&:-@).join.to_i что обозначает это -@ ?

Vlad
02.08.2018
07:10:37
оператор вычитания?

у руби можно перегружать операторы

Tim
02.08.2018
07:14:06
унарный минус

Dima
02.08.2018
07:15:00
Опять какой-то неизведанный синтаксис. Где про это можно прочитать?

Google
Tim
02.08.2018
07:15:41
ну это же просто -5

puts(-5) эквивалентно puts(5.send(:-@))

Dima
02.08.2018
07:20:00
puts(-5) эквивалентно puts(5.send(:-@))
Это очень интересно. Хотелось бы найти статью, главу, страницу документации где описан синтаксис использования @

Tim
02.08.2018
07:21:45
думаешь можно сделать другие унарные методы?

Dima
02.08.2018
07:22:59
я ничего не думаю. я не знаю как работает этот синтаксис и ищу документацию на этот счёт.

Кирилл
02.08.2018
07:24:14
Combot
02.08.2018
07:24:28
Dima (0) увеличил репутацию Kirill Furtikov (1)

Кирилл
02.08.2018
07:25:24
Но понятнее здесь расписано: http://www.rubyinside.com/rubys-unary-operators-and-how-to-redefine-their-functionality-5610.html

Combot
02.08.2018
07:25:38
Too fast! Try again later.

Dima
02.08.2018
07:25:42
хахаха)

Egor
02.08.2018
07:26:26
Вот тут можно поиск по @ сделать, там все опеации по классам есть https://ruby-doc.org/core-2.5.1/

Combot
02.08.2018
07:27:27
#ElRandir [AD] (0) увеличил репутацию Kirill Furtikov (2)

Dima
02.08.2018
07:27:52
вообще с этими &:+ я тольком не разбераюсь. Что-то переводиться из блока в proc, из proc в блок. Но толковой статьи я еще не находил.

которая бы все точки над i поставила.

Egor
02.08.2018
07:29:24
Dima
02.08.2018
07:30:56
вот этот ролик разрешил все вопросы по поводу block и стало все понятней: https://youtu.be/K8uhD8mtorE теперь хорошо бы найти внятное объяснение этих &.

Google
Damir
02.08.2018
08:35:01
И сейчас он выйдет?)

Alena
02.08.2018
08:39:58


Crypt
02.08.2018
08:41:42
Second?

... .take(3).map { |elem| elem.text }

Admin
ERROR: S client not available

Alena
02.08.2018
08:52:35
Second не получалось а второй варик попробую , спасибо!

Sviat
02.08.2018
08:58:56
[1] [2] [3]/[-1]?

Crypt
02.08.2018
08:59:52
мне вот всегда интересно было - ... map(&:text) не проканает?

有希
02.08.2018
09:04:56
Всем доброго времени суток. Подскажите пожалуйста gem для рисования линий, прямоугольников и текста в png/jpeg.

rabbitkate
02.08.2018
09:17:43
добрый день. подскажите пожалуйста, возможен ли такой кейс: есть переменная со значением, мы меняем это значение, а потом каким-то способом работаем с предыдущим значением?

Alena
02.08.2018
09:35:23
мне вот всегда интересно было - ... map(&:text) не проканает?
не, а вот выше вариант сработал но мне надо достать именно 430g как то pry(main)> pastry_weight = parsed_pastry_page.xpath('//span[@class = "attribute_name"]').take(3).map {|elem| elem.text} => ["200 Gr.", "430 gr", "4 Kg."]

Nork
02.08.2018
09:44:49
дык а что мешает если массив на выходе?

добавь в конец [1] или .second

Roman
02.08.2018
09:51:43
map(&:text) сработает тоже

Roman
02.08.2018
10:14:16
Вторая переменная?)
если не склонировать, то меняя вторую переменную, будешь менять и первую

ну кроме примитивов типа Fixnum

Google
Crypt
02.08.2018
10:14:48
если не склонировать, то меняя вторую переменную, будешь менять и первую
это для всех типов справедливо? или только для массивов/хэшей?

ну кроме примитивов типа Fixnum
а ну всё, вопрос отпал)

ojab
02.08.2018
10:17:30
a = [] b = a.dup b << 'b' p a # [] p b # ['b']
[1] pry(main)> x = { x: [] } => {:x=>[]} [2] pry(main)> y = x.dup => {:x=>[]} [3] pry(main)> y[:x] << 1 => [1] [4] pry(main)> x => {:x=>[1]}

Roman
02.08.2018
10:18:39
чтоб совсем-совсем нужно хачить типа y = Marshal.load(Marshal.dump(x))

но там свои ограничения

ну или гемы есть для этого стопудов, сейчас не вспомню

Dmitriy
02.08.2018
10:40:55
помню как-то попал с этим клонированием хэшей. Там какой-то хитрый способ есть, уже не помню как делал

Roman
02.08.2018
10:43:44
ну там еще с безопасностью проблемы, потому что Marshal.load может творить очень многие вещи, включая RCE

Pavel
02.08.2018
11:33:05
есть ли тг канал по ruby/rails с подборкой интересных статей? типа ios good reads

Dan
02.08.2018
11:33:58
github.com/goq/telegram-list

Pavel
02.08.2018
11:35:51
смотрел, каналов не нашел, вроде, там чаты только по ruby/rails

Ilya
02.08.2018
11:36:19
есть новостная рассылка еженедельная

ruby weekly

Dan
02.08.2018
11:40:05
А была же тоже рассылка... эмм, Женя делал. Забыл как называлась, там дайджест новостей про руби

Страница 1326 из 1594