私のRailsアプリケーションのベータ版招待状を設定しようとしています。私はInvitationモデルとUserモデルを持っています。Railsの移行別のテーブルにエントリを作成中に既存のレコードを更新します
ユーザーは1つのinvitation_idを持っています。そのユーザーがinvitation_idを持っていなければならないことを確認しており、固有である必要があります。私は移行を書いて、既存のユーザーにinvitation_idを更新できるようにしたいと思います。ここで
は私の招待モデルです:
# Table name: invitations
#
# id :integer not null, primary key
# sender_id :integer
# recipient_email :string(255)
# token :string(255)
# sent_at :datetime
# created_at :datetime
# updated_at :datetime
一意性を保証するために、私は招待テーブル内のレコードを作成しても、ユーザレコードに対応するIDを割り当てる必要があります。
誰かが同じように移行を提案できますか?
ありがとうございます!
おかげでクリスが。これは素晴らしい解決策です。好奇心のために、なぜ私たちは移行を使ってそれをしてはなりませんか?このアプリケーションで作業している私の同僚(および将来の共同作業者)は、自分のシステムでこれを動作させるためにrake db:distribute_invitationsを別々に実行する必要があります。 –
これもモデルコードであることをお勧めします。 –
マイグレートの経験を通して、マイグレーションにシードデータの依存関係がある場合はいつでも、私はいつも後でそれを後悔していることを知っています。追跡するのが少し難しくなり、必要であればタスクを再実行する能力が与えられません。私はチーム環境で作業していました。既存のテーブルにデータを取り込む必要があるカスタムタスクがあるときは、常に/ lib/tasksを探しました。あなたや他の誰かが同じことをする必要があった場合、それらはファイルに追加するだけで、すべてのデータ操作が一元化されます –