我正在使用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"}>
但 in_build_scope
subject
已更改为只是attributes
哈希,因此出现key not found: :id
错误。
HasMany::_build_scope - 主题:{:title=>"test_title"}
这很奇怪,因为我看不到在和subject
之间有任何变化的地方......initialize
_build_scope
那么这是一个错误是1.1.0.beta1,还是我做错了什么?