Size: a a a

Ruby, Rails, Hanami | dry-rb

2019 October 29

I

Ivan in Ruby, Rails, Hanami | dry-rb
к примеру у меня есть такая логика:
при сохранении поста мне нужно проверить айпишник(страну) юзера, проверить существует ли эта страна в базе данных(относящаяся к этому юзеру), если есть то создаю пост и привязываю его к этой стране, если нету то создаю страну и потом привязываю к ней пост, вот куда эту логику выносить?
источник

СН

Смерть Неизбежна in Ruby, Rails, Hanami | dry-rb
В сервис CreatePost
источник

k

kolas in Ruby, Rails, Hanami | dry-rb
в сервис класс(интерактор)
источник

СН

Смерть Неизбежна in Ruby, Rails, Hanami | dry-rb
Если чувствуешь, что в этом сервисе появляется что-то не относящееся к логике сохранения поста выносишь это в другой сервис, который дергаешь в этом
источник

I

Ivan in Ruby, Rails, Hanami | dry-rb
спасибо, понял :)
источник

DG

Denis Gorbunov in Ruby, Rails, Hanami | dry-rb
Привет!

Подскажите, плиз, как связать две модели, у которых есть одинаковое поле purchaseNum?
Т.е. мне нужно будет выбрать всё из model1 где поле purchaseNum = purchaseNum в model2

Не разобрался с primary_key и foreign_key :(
источник

DG

Denis Gorbunov in Ruby, Rails, Hanami | dry-rb
к примеру, есть такая модель
class Protocol44 < DataStore
 self.table_name = '44protocol'
 has_many :participant44s
end


и такая:
cl
ass Participant44 < DataStore
 self.table_name = '44participant'

 belongs_to :protocol44
end

Нужно в эту выборку
Protocol44.where(region: region, protocoldate: @date_from.beginning_of_day..@date_from.end_of_day).where.not(INN: '')

до
бавить join в Participant44 и сверить, что Protocol44.purchaseNum = Participant44.purchaseNum

пр
иходится адаптироваться под чужую базу, не хватает смекалки :(
источник

SS

Sergii Serogin in Ruby, Rails, Hanami | dry-rb
has_many :participant44s class_name: 'Participant44', foreign_key: :purchaseNum, primary_key: :purchaseNum
источник

SS

Sergii Serogin in Ruby, Rails, Hanami | dry-rb
наверное так
источник

SS

Sergii Serogin in Ruby, Rails, Hanami | dry-rb
:foreign_key - кей, который указывает на свизную запись,
:primary_key - кей, который указывает на базовую запись
источник

DG

Denis Gorbunov in Ruby, Rails, Hanami | dry-rb
Sergii Serogin
has_many :participant44s class_name: 'Participant44', foreign_key: :purchaseNum, primary_key: :purchaseNum
хм, вроде похоже на правду! спасибо, буду копать в эту сторону!
источник

AD

Anton Davydov in Ruby, Rails, Hanami | dry-rb
Ivan
привет всем, подскажите плиз, зачем нужны интеракторы? например у меня есть сервис который просто принимает опредленные данные и отдает jwt, можно ли это выносить в интерактор? или они нужны чисто для того чтобы вынести логику из моделей, и разбить на более понятные и мелкие куски?
я для себя оставил такое определение:

интерактор - это сервис, в котором важен не только результат, но и успешный он или нет (result object)
источник

DG

Denis Gorbunov in Ruby, Rails, Hanami | dry-rb
источник

АД

Антон Дьячук in Ruby, Rails, Hanami | dry-rb
Смерть Неизбежна
Вопрос по рельсам. У меня есть nested_attributes тройной вложенности. Таблица, которая третьего   уровня вложенности - STI. В ней есть полиморфная ассоциация. Вопрос, как отдебажить то, что у меня в параметрах приходят аттрибуты для этой таблицы, но они  не проставляются?
написать тесты будет проще всего
источник

СН

Смерть Неизбежна in Ruby, Rails, Hanami | dry-rb
Антон Дьячук
написать тесты будет проще всего
Был тест. А понимания, что происзодило не было.
источник

СН

Смерть Неизбежна in Ruby, Rails, Hanami | dry-rb
Оказался подвох в полиморфной связи.
источник

АД

Антон Дьячук in Ruby, Rails, Hanami | dry-rb
дважды в жизни у меня было желание зарепортить баг в рельсу
- когда работал с STI
- когда работал с nested_attributes
источник

АД

Антон Дьячук in Ruby, Rails, Hanami | dry-rb
если бы прям вот невмоготу и надо дебажить, то надо клонить AR подключать его локально и страдать
источник

СН

Смерть Неизбежна in Ruby, Rails, Hanami | dry-rb
Ну, спасибо рубимайну, за удобный дебаггер. С ним потратил не так много времени, сколько бы в консоли убил
источник

АД

Антон Дьячук in Ruby, Rails, Hanami | dry-rb
и в чем собака порылась?
источник