这是什么样的迁移?

时间:2013-03-27 06:57:46

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.2

我正在尝试基于预先构建的模型设置模型,该模型在迁移中具有以下代码:

   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部分。

3 个答案:

答案 0 :(得分:2)

这是一个显示关系的连接表。实际上user_idfriend_user_id都引用了用户表中的id

说我的身份证是10而你的身份是11.我认为你是“好”的朋友。所以在这张表中有一个记录:10,11,“好”。但你认为我是一个普通的朋友,所以还有一个记录:11,10,“正常”

答案 1 :(得分:2)

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

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

答案 2 :(得分:1)

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

t.string :user_id
t.string :friend_user_id

您可以在here找到相关文档(查找“简写示例”)