@rubylang

Страница 1382 из 1684
Evegeniy
13.02.2018
07:27:27
заюзай FormObject

Oleg
13.02.2018
07:27:33
Тут ведь проблема в другом, не в добавлении

Объект не обновляется...

Evegeniy
13.02.2018
07:27:57
в одновременном добавлении и редактировании?

Google
Evegeniy
13.02.2018
07:28:17
оу

Тогда совсем странно

Oleg
13.02.2018
07:28:37
Вот и я о том же)

Какие гайды только не перечитал

Oleg
13.02.2018
07:29:10
он в индексе устанавливается

это 100%

Evegeniy
13.02.2018
07:29:44
он в индексе устанавливается
в темплейте попробуй id передавать

Oleg
13.02.2018
07:30:38
Странно, я думал, что id вытаскивается из индекса

Нигде что-то не было подобной информации

Благодарья, Евгений!)

Evegeniy
13.02.2018
07:32:36
?

Google
Максим
13.02.2018
10:58:12
ребят никто не знает кк в http://jsonapi-rb.org/guides/serialization/rendering.html чётко указывать сериализатор? я уже пизда скок всего перепробовал и не могу понять

ojab
13.02.2018
11:06:05
указать jsonapi_class в контроллере или class в опциях к render jsonapi:, очевидно

Максим
13.02.2018
11:06:40
оно то ясно

я не понимаю как

ojab
13.02.2018
11:09:47
>class: a hash globally mapping model class names to serializable resource class names. как бы говорит нам документация http://jsonapi-rb.org/guides/serialization/rendering.html. Ну и сериализаторы дожны быть подклассами JSONAPI::Serializable::Resource.

Максим
13.02.2018
11:11:27
т.е.?

я видел что там написано

мне вот не понятно что это значит

понятно что хеш да

а хеш с какими ключами? какие значения долнжы быть?

ojab
13.02.2018
11:13:06
сериализаторы, очевидно

классы

Максим
13.02.2018
11:13:28
ты мог бы пример написать?

мне так гораздо легче понять

типа class: {model: Serializer} ?

ojab
13.02.2018
11:46:42
типа class: {model: Serializer} ?
{ MyModel: MyModelSerializer }

Максим
13.02.2018
11:46:57
да, уже разобрался, спасибо

там оказывается если чётко указывать то нужно каждой сущности которую инклюдишь

а я только той чей контроллер, думал остальное сам подцепит

Denis
13.02.2018
15:11:53
Существует ли в рельсах 4 create_or_update

Google
ojab
13.02.2018
15:12:27
find_or_initialize_by и внутри блока апдейтишь что нужно

Denis
13.02.2018
15:12:41
Спасибо

ojab стоп, а разве через find_or_initialize_by можно сделать create or update?

David
13.02.2018
15:52:47
Только без сохранения в бд

ojab
13.02.2018
15:53:19
ну, он тебе инициализирует модель или достаёт из базы, а дальше ты с ней что хочешь делай

Denis
13.02.2018
15:53:25
Можно пример для особо одаренных?

ojab
13.02.2018
15:54:06
Model.find_or_create_by(first_name: 'model_name') do |model| model.update!(last_name: 'new_name') end

ⰿⰰⰾⱏ
13.02.2018
15:54:25
Как раз это и делает
find или new делает)))

David
13.02.2018
15:55:21
Вообще есть получше метод

Этот уже устарел

https://snippets.aktagon.com/snippets/620-rails-find-or-initialize-and-find-or-create-methods-are-deprecated

ojab
13.02.2018
15:58:41
https://snippets.aktagon.com/snippets/620-rails-find-or-initialize-and-find-or-create-methods-are-deprecated
srsly? https://github.com/rails/rails/commit/0096f53b25e68c3fc79429253f816fff4a4ee596

Denis
13.02.2018
15:59:56
ojab верно? Auto::CarGeneration.find_or_create_by(id: row[0]) { |f| f.update(name: row[1], car_model_id: row[2], year_begin: row[3], year_end: row[4], car_type_id: row[7]) }

ojab
13.02.2018
16:02:52
типа того, да. Но странно что parse_file возвращает Enumerator (не вызывпается .each и иже) + вместо row[index] лучше юзать destructuring (i. e. вместо |row| сделать |name, car_model_id, …|) + вместо .update юзать .update!

David
13.02.2018
16:05:47
srsly? https://github.com/rails/rails/commit/0096f53b25e68c3fc79429253f816fff4a4ee596
Соглашусь, find_or_create более актуальный

Denis
13.02.2018
16:25:01
Update не работает

ojab parse_file('car_type') { |row| Auto::CarType.find_or_create_by!(id: row[0]) { |f| f.update!(name: row[1]) } }

Находит, создаёт но не обновляет

ojab
13.02.2018
16:30:05
ой

Google
ojab
13.02.2018
16:30:14
же, а не create

find_or_initialize_by и внутри блока апдейтишь что нужно

хотя он и с create должен обновлять, проще всего дебаггером встать внутри блока и посмотреть, что там в f/что происходит при update!

David
13.02.2018
16:46:59
Находит, создаёт но не обновляет
А при обновлении учитываются какие-нибудь валидации для name?

Иван
13.02.2018
16:47:09
Блок же сработает только в случае initialize, получается если запись существует, то она не обновится

David
13.02.2018
16:47:23
Если нет, то можно попробовать update_attribute

ojab
13.02.2018
16:48:15
таки да, блок только при создании обрабатывается

David
13.02.2018
16:49:59
Иван
13.02.2018
16:57:47
Легче всего сделать auto = YourModel.find_or_initialize_by(...) auto.property = new_value auto.save

Если нравятся блоки то через tap

Sergey
13.02.2018
20:36:34
#noob объясните пожалуйста как у поста пропишется user_id. Я просто привык по-человечески самим писать логику маршрутов и контролеров и в rails вся подкапотная генереация мне кажется непонятной



ojab
13.02.2018
20:37:20
в post_params придёт, вестимо

а

http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html#method-i-has_many

тебя интересует collection.create(attributes = {})

ассоциация User.has_many :posts создаёт метод User#posts.create

Sergey
13.02.2018
20:40:10
в post_params придёт, вестимо
я так и подозревал ) но блин мне привычнее, когда я вижу и пишу все маршруты, а не абстрактное слово resources

ojab
13.02.2018
20:40:21
(через # обозначаются методы интсанса, то бишь User.merthod — метод класса, а User#method — метод интсанса)

а тебя никто не заставляет юзать @user.posts

Google
ojab
13.02.2018
20:41:05
можешь передавать user_id как хочешь

Nikita
13.02.2018
20:42:18
я так и подозревал ) но блин мне привычнее, когда я вижу и пишу все маршруты, а не абстрактное слово resources
Ну со временем привыкнешь, на самом деле это удобнее, чем писать лишние роуты для круда

Все в 1 слове

Sergey
13.02.2018
20:42:43
можешь передавать user_id как хочешь
он же в url должен придти, а сервер его вытягивает но не привычно, когда я не могу это увидеть )

Nikita
13.02.2018
20:42:56
ojab какие сокета в рельсе заюзать? Про экшн кабель много негатива слышал

AnyCable?

ojab
13.02.2018
20:44:57
ActionCable, само собой

Andiskiy
13.02.2018
20:45:02
ojab какие сокета в рельсе заюзать? Про экшн кабель много негатива слышал
А есть документация как юзать сокеты в рельсах на пассажире? На фронте нужно обновлять в реальном времени. Пытался делать это с гемом фае

ojab
13.02.2018
20:45:06
anycable нужен, если actioncable не устраивает

Nikita
13.02.2018
20:45:57
anycable нужен, если actioncable не устраивает
Да просто у нас экспорты xls толстые, сейчас реализовано через воркер на почту, но хочу на сокеты переделать

ojab
13.02.2018
20:46:14
Andiskiy
13.02.2018
20:47:00
Andiskiy
13.02.2018
20:48:16
а зачем использовать пассажира, а не пуму, например?
А в чем отличие пассажира и пумы? Хотел уйти от него, но никак руки не доходили. Сервер на хероку

Sergey
13.02.2018
20:48:26
Так он в параметрах придёт, посмотри лог сервера
какая команда тут аналог console.log ? ) после java и javascript ruby синтаксис и rails очень не удобыны )

Nikita
13.02.2018
20:48:34
puts)

Sergey
13.02.2018
20:49:08
ок спасибо )

Страница 1382 из 1684