@rubylang

Страница 962 из 1684
Tony
31.03.2017
09:06:09
Т/е нельзя напрямую изменить foreign_key. Это я пониманимаю. Не знаю как реализовать по другому.

Nikita
31.03.2017
09:06:11
а, ну так у тебя нет level с id 1

ну судя по ошибке

или есть? проверь

Google
Nikita
31.03.2017
09:07:25
Level.all

Tony
31.03.2017
09:08:18
Точно. Спасибо всем! Невнимательность мать ее...

Nikita
31.03.2017
09:08:40
да не за что

Александр
31.03.2017
09:56:21
а как в нестед атрибутес вложить значения? есть форма с fields for, в парамс приходит [:branch_attributes]["0"][:boilers_attributes][:fuel_consumption] и тут есть значение [:fuel] я хочу на этом же уровне добавить [:date], пока времннно решил через жс :), вставляю hidden field с датой и меняю жсом. вместо ["0"] там их очень много, в зависимости от бранча.

ojab
31.03.2017
09:58:38
Лучше кинуть вьюху в gist и рассказать что в params хочешь получить, вестимо.

Александр
31.03.2017
10:05:55
https://gist.github.com/savvinovan/f40df84457a5f77f8edf8d9f4b0321c7

ojab
31.03.2017
10:09:40
boilers.fields_for 'fuel_consumptions[]'?

оу, fields_for 'boilers[]' на самом деле

Александр
31.03.2017
10:12:14
надо fields_for boilers[] написать?

ojab
31.03.2017
10:12:53
да, вместо fields_for :boilers (если я правильно понимаю чего ты хочешь)

Александр
31.03.2017
10:13:19
я хочу значение даты поменять

из контроллера

после сабмита формы

Google
ojab
31.03.2017
10:14:44
…и в чём проблема?

Александр
31.03.2017
10:15:55
не знаю как сделать merge :)

ojab
31.03.2017
10:17:13
merge чего?

Александр
31.03.2017
10:17:29
в парамс

перед апдейтом

сейчас покажу парамс

он выглядит как params['branch_attributes']['0']['boilers_attributes]['fuel_consmuption_attriubtes] мне надо сюда добавить params['branch_attributes']['0']['boilers_attributes]['fuel_consmuption_attriubtes]['date']

мне надо как то перебрать чтоли этот хеш, там есть какое подобие массива ['0' => ['boiler_attributes'], '1' => ['boiler_attributes'] и т.д.]

ojab
31.03.2017
10:26:10
…и ты до сих пор не показал, как выглядит params (hint: это хеш вида https://gist.github.com/ojab/4268267c8fc5abdb45ac20f42e7df0b4)

hint2: тебе не нужно ничего мержить, тебе нужно передавать правильные params из формы (с хешем вида { fuel: val1, date: val2 })

Александр
31.03.2017
10:36:36
https://gist.github.com/savvinovan/677e41fdc4fb9c183fe9f1c9ab7c352b

наконец то запустил :)

я хочу рядом с fuel дату добавить

Vasiliy
31.03.2017
11:01:38
а никто не работал с сериалайзерами для полиморфных связей?

ojab
31.03.2017
11:34:53
https://gist.github.com/savvinovan/677e41fdc4fb9c183fe9f1c9ab7c352b
о, так лучше. В итоге для каждого из [уже созданных] @branch.boilers мы хотим создать один новый fuel_consumption с fuel и date, так?

Александр
31.03.2017
11:35:25
да

ojab
31.03.2017
11:47:00
да
тогда тебе нужно в [:boiler_attributes][:id] положить массив (потому что Boiler.has_many :fuel_consumptions хешей с аттрибутами создаваемых FuelConsumption. Массив action_view создаёт если первый параметр у fields_for заканчивается на []. В нашем случае это будет fields_for 'fuel_consumption[]'.

ну и вместо do |boilers| можно вписать do |ff| и заменить boilers.object.fuel_consumptions.build на FuelConsumption.new

Александр
31.03.2017
11:52:11
тогда вместо {"0"=>{"fuel"=>"123"}} будет просто {"fuel"=>"123"} ?

ojab
31.03.2017
11:54:52
будет [{"fuel"=>"123"}]

Google
ojab
31.03.2017
11:54:58
ибо has_many

(ну и писал я это всё не проверяя, но общий смысл понятен, надеюсь. Так что лучше попробовать и посмотреть что получится)

хотя прозреваю что придётся boilers.object.fuel_consumptions.build всё-таки оставить чтобы nested attributes подхватились

(но лучше проверить, ага)

Александр
31.03.2017
12:26:22
ок, спасибо

Смерть
31.03.2017
13:55:34
Подскажите. Есть такое. namespace :foo do get 'bar', action: 'info', as: :buzz end Хочу именованый хэлпен не foo_buzz_url, а просто buzz_url. Возможно сделать так?

ojab
31.03.2017
14:03:24
http://guides.rubyonrails.org/routing.html#overriding-the-named-helpers

Смерть
31.03.2017
14:13:33
http://guides.rubyonrails.org/routing.html#overriding-the-named-helpers
я прочитал, но не понял как сделать именно не префикс

Airat
31.03.2017
14:14:11
shallow: true не будет работать?

ojab
31.03.2017
14:20:15
я прочитал, но не понял как сделать именно не префикс
оу, думал оно неймспейсы тоже переписывает. Тогда scope module: 'foo' должно помочь

Смерть
31.03.2017
14:26:36
Блин, хэлпер стал правильный, но адрес теперь не правильный

ojab
31.03.2017
14:33:52
это тоже аргументом к scope фиксится

Смерть
31.03.2017
14:39:07
Да, огонь, спасибо

А можете проконсультировать по ActiveModelSerializer? Я хочу для некоторых моделей выводить в json сразу же их релейшны. Т.е. делать нестед сущности. Сейчас единственный приемлимый для меня способ получился вот так.



Я никак не могу нагуглить, могу ли я делать вложеные сущности как-то проще, не описывая метод, в котором создаю нужный сериалайзер? Мне нужно будет в некоторых местах выводить кастомный сериалайзер, а не обычный, как в этом примере

Антон
31.03.2017
14:55:56
так в том месте где респондер можно выбрать любой серилайзер

Vasiliy
31.03.2017
14:56:56
в сериалайзере есть же has_many и т.д

has_one(или belongs_to) :lang has_one(или belongs_to) :user_profile

Смерть
31.03.2017
14:58:25
в сериалайзере есть же has_many и т.д
Ну вот у меня ситуация, что есть belongs_to. И тогда он выводит это не как сериализованую модель, а как relation, в котором только id и тип

Google
Vasiliy
31.03.2017
14:58:46
json_api у тебя формат?

я вот ща тоже ебусь прям вот с этим гавном

Смерть
31.03.2017
14:59:13
Да

Я пока только такой выход нашел

Но я запарюст писать кучу таких вьюх

Vasiliy
31.03.2017
14:59:40
там кароч надо делать там где выводишь include: [:user_profile, :lang]

это ваще оказывается фишка json_api, ты типа юзеру клиенту даёшь юзать релейшены в глубь

Смерть
31.03.2017
15:00:49
Блин, тогда хрень какая-то, запарюсь dry'ить это

Admin
ERROR: S client not available

Vasiliy
31.03.2017
15:01:14
и если дашь возможность в контроллере своём тип такого сделать respond_with current_resource.cards, include: params[:included]

Mikhail
31.03.2017
15:01:21
для апишки юзаю https://github.com/trailblazer/representable или AMS

но у блейзеров поприятнее

Смерть
31.03.2017
15:01:44
И я наоборот хочу разгрузить клиента, чтобы меньше запросов было

Vasiliy
31.03.2017
15:02:06
ну именно

Смерть
31.03.2017
15:02:07
И часть данных эмбедить сразу же, потому что они будут нужны сразу же в 90% случаев

Vasiliy
31.03.2017
15:02:44
делаешь render json: @user, include: '**'

или там render json: @user, include: '**.**'

https://github.com/rails-api/active_model_serializers/blob/master/docs/general/adapters.md#include-option

Смерть
31.03.2017
15:04:19
Хм, спасибо

похоже на то, что нужно

Google
Vasiliy
31.03.2017
15:04:50
весь день сегодня вхуярил на это

ojab
31.03.2017
15:05:37
as a side note, render json выдаст неправильный Content-Type, так что стандарту json-api ответ не будет соответстовать

Vasiliy
31.03.2017
15:06:00
самое интересное что если делать через тупой .as_json(include: {user: include: {}}) всё проще чем через АМС

ojab
31.03.2017
15:06:07
так что лучше юзать render jsonapi

Vasiliy
31.03.2017
15:06:21
да) там надо application/vnd.api+json

ни у кого нет пример белого списка?

Смерть
31.03.2017
15:25:24
Короче у меня пока столько вопросов и неочевиностей к rails-api, что не могу понять, нравится он мне или нет

Клепать все в jbuilder было проще

Vasiliy
31.03.2017
15:29:35
++++ 100 милионов

в принципе я с этими инклюдами разобрался, доку покурил по амс и вроде как уже нравится, достаточно гибко там всё

но вот на другом проекте у нас as_json везде где только можно и это какой-то пиздец

s
31.03.2017
15:36:45
кстати, раз про jsonapi вспомнили

а кто-нибудь пользовался json hyperschema для документирования api?

заиспользовали на новом проекте

и общее впечатление такое что

nooooo

но может я что-то не понимаю

и разрозненная непойми как написаная документация с примитивными примерами – это все не правда и я плохо искал

невозможность указать статус код ответа – см. выше или может оно вообще не нужно

костылили при описании ендпойнта для ресурса, который имеет разные представления – см. выше :)

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