私はレールを学習しており、データベースの関連付けを把握しようとしています。 ID、名前、電子メールなどを持つユーザーと、メッセージ、送信者(ユーザー)、受信者(またはユーザー)を含むメッセージテーブルを持つデータベーステーブルがある場合は、移行をどのように設定するのですか。モデル。ここでは、Rails 3.1を使用しています。私は、メッセージテーブル内の参照のあるユーザーが1人しかいないと確信しています。ユーザーは移行中ですが、2人を設定する方法がわかりません。Railsデータベースの関連付け/移行
答えて
一部のリソースあなたが始めるために:Rails Tutorial: User ModelRoR Guides: Migrations
まず次にあなたのメッセージにモデル(/アプリ/モデルユーザー移行
$ rails generate model User name:string email:string
そして、あなたのメッセージの移行
$ rails generate model Message message:string user_id:integer
を作ります/メッセージ.rb)
belongs_to :user
し、ユーザーモデル(/app/models/users.rb)
has_many :microposts
に明らかにこれが起こるために必要なもののラフスケッチですが、それはあなたが始める必要があります!
何らかの理由で自分のコメントを追加することはできませんが、あなたが行ったコメントは自分の回答を変更しません。私が投稿したリンクから少し読んだことは、私が思っていることを理解するのに役立ちます。 –
ありがとう、これは私が物事を把握するために使用している本です。私は今、マイグレーションを持っています。メッセージモデルは2つあります:belongs_to lines ... belongs_to:送信者:class_name => "User"、:foreign_key => "sender_id" belongs_to:recipient、 class_name => "User"、:foreign_key => "recipient_id" 今、私はUserモデルに何が含まれるべきかわかりません。送信用と受信用の2つの "has_many"行があるはずですが、それらを指定する方法は正確にはわかりません。思考? – slabounty
OK、ここに私が終わったことが書かれています。 – slabounty
[OK]をここで私は結局です。
まず移行...
class CreateMessage < ActiveRecord::Migration
def change
create_table :messages do |t|
t.string :greeting
t.integer :sender_id
t.integer :recipient_id
t.timestamps
end
end
end
次のメッセージモデルで...
# Message model
belongs_to :sender, :class_name => "User", :foreign_key => "sender_id"
belongs_to :recipient, :class_name => "User", :foreign_key => "recipient_id"
とUserモデルで...
# Message model
belongs_to :sender, :class_name => "User", :foreign_key => "sender_id"
belongs_to :recipient, :class_name => "User", :foreign_key => "recipient_id"
OK、それは見えます私のモデルのように私は何かが欲しい: 'classメッセージ belongs_to: sender_idとrecipient_idの列を取得するために、移行に何を入れるのかまだ分かりません。 – slabounty