Ошибка с ассоциациями Hanami has_many (в 1.1.0.beta1)

Я использую Hanami 1.1.0.beta1 (потому что мне нужны ассоциации).

event может иметь много actions:

class EventRepository < Hanami::Repository
  associations do
    has_many :actions
    ...
  end

class ActionRepository < Hanami::Repository
  associations do
    ...
    belongs_to :event
  end

Когда я это называю EventRepository метод:

  def add_action(event, data)
    assoc(:actions, event).add(data)
  end

Я получаю эту ошибку:

  KeyError:
    key not found: :id
  # /home/eric/.gem/ruby/2.3.4/gems/hanami-model-1.1.0.beta1/lib/hanami/model/associations/has_many.rb:195:in `fetch'
  # /home/eric/.gem/ruby/2.3.4/gems/hanami-model-1.1.0.beta1/lib/hanami/model/associations/has_many.rb:195:in `_build_scope'
  # /home/eric/.gem/ruby/2.3.4/gems/hanami-model-1.1.0.beta1/lib/hanami/model/associations/has_many.rb:47:in `initialize'
  # /home/eric/.gem/ruby/2.3.4/gems/hanami-model-1.1.0.beta1/lib/hanami/model/association.rb:20:in `new'
  # /home/eric/.gem/ruby/2.3.4/gems/hanami-model-1.1.0.beta1/lib/hanami/model/association.rb:20:in `build'
  # /home/eric/.gem/ruby/2.3.4/gems/hanami-model-1.1.0.beta1/lib/hanami/repository.rb:472:in `assoc'
  ...

Я посмотрел в has_many.rb. В initialize я вижу это subject является Event объект, и у него есть id:HasMany::initialize - subject: #<Event:0x00558f3c198ce8 @id=705, @attributes={:title=>"test_title"}>

но в _build_scopesubject изменился, чтобы быть просто attributes хэш, отсюда key not found: :id ошибка.

HasMany:: _ build_scope - subject: {: title => "test_title"}

что странно, потому что я не вижу места, где subject меняется между initialize а также _build_scope...

Так это ошибка 1.1.0.beta1, или я что-то не так делаю?

0 ответов

Другие вопросы по тегам