Я работаю с DataMapper и Sinatra, чтобы создать простое приложение.Вот структура:
Приложение имеет учетные записи.У каждой учетной записи есть пользователи и кампании.У каждого пользователя есть комментарии, которые должны быть связаны с конкретной кампанией.
В идеале комментарии должны иметь идентификатор пользователя и идентификатор кампании, чтобы связать их обоих.
Как я могу связать 2 вместе?Вот код, который у меня есть, который не работает:
class Account
include DataMapper::Resource
property :id, Serial
property :mc_username, String, :required => true
property :mc_user_id, String, :required => true
property :mc_api_key, String, :required => true
property :created_at, DateTime
property :updated_at, DateTime
has n, :users
has n, :campaigns
end
class User
include DataMapper::Resource
property :id, Serial
property :name, String, :required => true
property :email, String, :required => true
property :is_organizer, Integer
property :created_at, DateTime
property :updated_at, DateTime
belongs_to :account, :key => true
has n, :comments
end
class Campaign
include DataMapper::Resource
belongs_to :mailchimpaccount, :key => true
has n, :comments
property :id, Serial
property :cid, String
property :name, String
property :current_revision, Integer
property :share_url, Text, :required => true
property :password, String
property :created_at, DateTime
property :updated_at, DateTime
end
class Comment
include DataMapper::Resource
belongs_to :campaign, :key => true
belongs_to :user, :key => true
property :id, Serial
property :at_revision, Integer
property :content, Text
property :created_at, DateTime
end
С этим кодом я не могу сохранить комментарий, так как не могу понять, как связать его с кампанией и пользователем нав то же время.На самом деле я не могу разобраться, стоит ли мне вообще пытаться связать их, используя DataMapper.
Мне бы хотелось узнать, верен ли этот код, как я могу создать комментарий, связанный скак для.Если нет, то какая структура и ассоциации будут оптимальными для этого сценария?
Большое спасибо за помощь!