Tôi đã tìm kiếm tài liệu về cách triển khai mối quan hệ giữa các thực thể (ví dụ: một, nhiều, nhiều người, v.v.) nhưng không tìm thấy bất kỳ ví dụ nào.Thực hiện mối quan hệ nhiều và nhiều (và khác) với Hanami
Vì vậy, tôi đã thử một dự đoán hợp lý. Đây là nỗ lực của tôi lúc thực hiện một Person
những người có thể được gắn thẻ với Tag
s:
require 'moocho_query'
require 'hanami/model'
require 'hanami/model/adapters/file_system_adapter'
class Person
include Hanami::Entity
attributes :name, :age, :tags
end
class Tag
include Hanami::Entity
attributes :name
end
class PersonRepository
include Hanami::Repository
end
class TagRepository
include Hanami::Repository
end
Hanami::Model.configure do
adapter type: :file_system, uri: './file_db'
mapping do
collection :people do
entity Person
repository PersonRepository
attribute :id, Integer
attribute :name, String
attribute :age, Integer
attribute :tags, type: Array[Tag]
end
collection :tags do
entity Tag
repository TagRepository
attribute :id, Integer
attribute :name, String
end
end
end.load!
me = Person.new(name: 'Jonah', age: 99)
t1 = Tag.new(name: 'programmer')
t2 = Tag.new(name: 'nice')
me.tags = [t1, t2]
PersonRepository.create(me)
này thất bại trên load!
cuộc gọi, với các lỗi sau:
/Users/x/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/hanami-utils-0.7.0/lib/hanami/utils/class.rb:90:in `load_from_pattern!': uninitialized constant (Hanami::Model::Mapping::Coercers::{:type=>[Tag]}|
{:type=>[Tag]}) (NameError)
from /Users/jg/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/hanami-model-0.6.0/lib/hanami/model/mapping/attribute.rb:80:in `coercer'
from /Users/jg/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/hanami-model-0.6.0/lib/hanami/model/mapping/attribute.rb:53:in `load_coercer'
là gì cách chính xác để thực hiện các mối quan hệ trong Hanami?
Cảm ơn thông tin. Bạn có biết về bất kỳ loại đá quý ruby nào khác có triển khai mẫu kho lưu trữ với bộ điều hợp có thể hoán đổi cho tệp/bộ nhớ/postgres như Hanami không, nhưng cũng có hỗ trợ cho các liên kết? – Jonah