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同一行上有两个属性的部分。

4

3 回答 3

2

这是一个显示关系的连接表。实际上user_idfriend_user_id所有参考id用户表。

假设我的 id 是 10,而你的 id 是 11。我认为你是“好”朋友。所以在这个表中有一条记录:10、11、“好”。但是你认为我是一个普通的朋友,所以再记录一个:11、10、“普通”

于 2013-03-27T07:06:01.033 回答
2

在第一行中,创建了两列,命名为user_idfriend_user_id具有字符串数据类型。在第二行中,创建了另一个名为status具有字符串数据类型的列。因此,在迁移中,您可以在一行中写入具有相同数据类型的所有列名。即迁移可以这样写。

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

这只是在同一行中声明具有相似属性的两列。它类似于

t.string :user_id
t.string :friend_user_id

您可以在此处找到相关文档(查找“速记示例”)

于 2013-03-27T07:18:05.070 回答