Я работаю над моделью данных, в которой есть Элементы, которые отслеживают компоненты диаграммы, и должны иметь возможность иметь дочерние и родительские элементы для всех.Тем не менее, у меня есть приведенные ниже модели, когда я пытаюсь сохранить ошибки.
class Element
include DataMapper::Resource
property :element_id, Serial, :key => true
has n, :attributions, :child_key => [:child_id]
has n, :parents, self, :through => :attributions, :via => :parent
end
class Attribution
include DataMapper::Resource
property :attribution_id, Serial, :key => true
belongs_to :child, 'Element'
belongs_to :parent, 'Element'
end
post '/test/:id/attribution/:element_id/addattribution' do
@toc = Theoryofchange.get(params[:id])
@parent_element = Element.get(params[:element_id])
@child_element = Element.get(params[:child])
attribution = Attribution.new
attribution.child = @child_element
attribution.parent = @parent_element
attribution.save
end
Когда я сохраняю форму, появляется ошибка ниже.
2018-10-08 11: 00: 52 - DataMapper :: SaveFailureError - Атрибуция # save вернула false, атрибуция не сохранена:
Я следовал документации по самореференциальным отношениям, но явно что-то упустил.