Size: a a a

Ruby, Rails, Hanami | dry-rb

2020 February 29

ЯК

Ярослав Коробейников in Ruby, Rails, Hanami | dry-rb
Тебе же нужно вытянуть всех сапплаеров одного ордера?
источник

X

Xander in Ruby, Rails, Hanami | dry-rb
Надо вытянуть supplier.short_name
источник

X

Xander in Ruby, Rails, Hanami | dry-rb
в ордере есть supplier_id
источник

ЯК

Ярослав Коробейников in Ruby, Rails, Hanami | dry-rb
Xander
в ордере есть supplier_id
Так получается что ордер принадлежит сапплаеру же
источник

ЯК

Ярослав Коробейников in Ruby, Rails, Hanami | dry-rb
И у сапплаера много ордеров
источник

X

Xander in Ruby, Rails, Hanami | dry-rb
Когда ордер создается, ты выборка из всех suppliers
источник

X

Xander in Ruby, Rails, Hanami | dry-rb
<%= form.collection_select :supplier_id, Supplier.order(:short_name), :id, :short_name, include_blank: true %>
источник

X

Xander in Ruby, Rails, Hanami | dry-rb
таким вот образом
источник

АД

Антон Дьячук in Ruby, Rails, Hanami | dry-rb
Nikolay Okoneshnikov
$ rails g model Task model_type model_id:integer
....
config/routes.rb
resources :checkups do
 resources :tasks, module: :checkups
end
.....
models/task.rb
belongs_to :model, polymorphic: true
models/checkup.rb
has_many :tasks, as: :model, dependent: :destroy
...
Ну и далее в контроллере
AR.transaction do
 if model.save!
   task.save!
 end
end # ваш капитан
источник

ЯК

Ярослав Коробейников in Ruby, Rails, Hanami | dry-rb
Xander
Когда ордер создается, ты выборка из всех suppliers
@order.supplier.short_name сработало бы, но у тебя связь этому не способствует
источник

ЯК

Ярослав Коробейников in Ruby, Rails, Hanami | dry-rb
Если была бы один к одному, то можно было бы
источник

ЯК

Ярослав Коробейников in Ruby, Rails, Hanami | dry-rb
У одного ордера может быть несколько сапплаеров? Нет. А у одного сапплаера может быть много ордеров? Да. Значит связь сапплаер has_many ордерс
источник

ЯК

Ярослав Коробейников in Ruby, Rails, Hanami | dry-rb
Xander
наооборот
А ты говоришь что у тебя наоборот
источник

X

Xander in Ruby, Rails, Hanami | dry-rb
Изменил на
class Order < ApplicationRecord
 has_one :supplier
end

class Supplier < ApplicationRecord
 belongs_to :order, optional: true
end
источник

X

Xander in Ruby, Rails, Hanami | dry-rb
undefined method `short_name' for nil:NilClass
источник

ЯК

Ярослав Коробейников in Ruby, Rails, Hanami | dry-rb
Xander
Дарова! плиз подскажите нубу, как запилить метод ассоциации с foreign key одной модели в акшене  index, что то типа такого  
def get_suppliers
     @supplier = Supplier.find(@order.supplier_id)
   end
У тебя метод называется get_suppliers, а найти ты пытаешься одного сапплаера который владеет конкретным ордером
источник

X

Xander in Ruby, Rails, Hanami | dry-rb
:(
источник

ЯК

Ярослав Коробейников in Ruby, Rails, Hanami | dry-rb
Xander
Изменил на
class Order < ApplicationRecord
 has_one :supplier
end

class Supplier < ApplicationRecord
 belongs_to :order, optional: true
end
Так не получится уже, у тебя же в базе другие связи, миграции тогда надо переделать, но по-моему связи с точки зрения логики у тебя норм. Как у одного ордера может быть много сапплаеров? Как-то не логично
источник

X

Xander in Ruby, Rails, Hanami | dry-rb
Схема выглядит так
источник

X

Xander in Ruby, Rails, Hanami | dry-rb
Ресетнул db
источник