Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 使用外键作为复合键的一部分_Ruby On Rails_Ruby_Activerecord - Fatal编程技术网

Ruby on rails 使用外键作为复合键的一部分

Ruby on rails 使用外键作为复合键的一部分,ruby-on-rails,ruby,activerecord,Ruby On Rails,Ruby,Activerecord,所以,我正在创建一个类似谷歌分析的应用程序。用户在他的博客上安装截取的JS,JS发送与每篇文章相关的指标。安装它所需的唯一额外信息是他的站点id(有点像谷歌分析id)。此应用程序将仅与wordpress配合使用,并且将为每个博客帖子创建posts表中的条目,因此我进行了以下迁移: class CreatePosts < ActiveRecord::Migration[6.0] def change create_table :posts, primary_key: %i[id s

所以,我正在创建一个类似谷歌分析的应用程序。用户在他的博客上安装截取的JS,JS发送与每篇文章相关的指标。安装它所需的唯一额外信息是他的
站点id
(有点像谷歌分析id)。此应用程序将仅与wordpress配合使用,并且将为每个博客帖子创建
posts
表中的条目,因此我进行了以下迁移:

class CreatePosts < ActiveRecord::Migration[6.0]
  def change
   create_table :posts, primary_key: %i[id site_id] do |t|
      t.belongs_to :site, null: false
      t.bigint :id
      t.bigint :post_id
      t.string :url

      t.timestamps
    end
  end
end

谢谢。

因此,Rails ActiveRecord默认情况下不支持复合主键。这就是您将看到此消息的原因()

但是,如果您想使用此功能,可以尝试gem

所以你可以做一些像

#安装gem后
类Post
我听说我还可以使用添加索引。对吗?
WARNING: Active Record does not support composite primary key.

posts has composite primary key. Composite primary key is ignored.