У меня есть две модели продолжения user
и event
, которые в настоящее время обрабатываются одной таблицей соединений. Пользователей можно приглашать на мероприятия, и этим приглашениям присваивается статус; это обрабатывается другой таблицей соединений.
class Event < Sequel::Model(:events)
many_to_many :users
many_to_many :invitations, :join_table => :events_invitations, :right_key => :user_id, :class => :User, :select=>[Sequel.expr(:users).*, :events_invitations__status]
end
class User < Sequel::Model(:users)
many_to_many :events
many_to_many :invitations, :join_table => :events_invitations, :right_key => :event_id, :class => :Event, :select=>[Sequel.expr(:events).*, :events_invitations__status]
end
Я могу создавать и получать доступ к связанным приглашениям, но изменения никогда не сохраняются (я предполагаю, что это связано с тем, как я настроил many_to_many)
user = User.create(name: "bob")
event = Event.create(title: "super fete")
user.add_event(e)
event.add_invitation(e)
invite = user.invitations.first
# this returns a reference to the event, with the extra status column from the join table
# <Event @values={:id=>1, :title=>"fete", :owner_id=>nil, :user_id=>nil, :status=>"pending"}>
# does not actually save back to the table if I modify it...
invite[:status] = "accepted"
Как мне смоделировать это, чтобы иметь возможность видеть и устанавливать статус приглашений для пользователей и событий?
add_invittion
. Но для получения данных нужна модель. - person knut   schedule 07.01.2018