0

移行時に次のコードを含むビルド済みモデルに基づいてモデルをセットアップしようとしています。

   def change
      create_table :friendships do |t|
         t.string :user_id, :friend_user_id
         t.string :status
       end
  end

t.string :status文字列を使用する列が作成されている部分を取得します。t.string :user_id, :friend_user_id同じ行に2つの属性がある部分がわかりません。

4

3 に答える 3

2

これは、関係を示すための結合テーブルです。実際user_idには、すべてがユーザーテーブルでfriend_user_id参照されます。id

私のIDが10で、あなたのIDが11だとしましょう。私はあなたを「良い」友達だと思っています。したがって、この表には、10、11、「良好」というレコードがあります。しかし、あなたは私を普通の友達だと思っているので、もう1つのレコード:11、10、「普通」

于 2013-03-27T07:06:01.033 に答える
2

最初の行では、文字列データ型として名前が付けられた2つの列が作成されてuser_idいます。2行目には、文字列データ型を持つfriend_user_id名前の別の列が作成されています。statusしたがって、移行では、同じデータ型を持つすべての列名を1行に書き込むことができます。つまり、移行は次のように記述できます。

def change
  create_table :friendships do |t|
    t.string :user_id, :friend_user_id, :status
  end
end
于 2013-03-27T07:19:46.243 に答える
1

これは、同じ行に類似した属性を持つ2つの列の宣言にすぎません。に似ています

t.string :user_id
t.string :friend_user_id

そのためのドキュメントはここにあります(「簡単な例」を探してください)

于 2013-03-27T07:18:05.070 に答える