用户上传次数过多。我想在上传表中添加一个引用用户的列。迁移应该是什么样的?
这是我有的。我不确定我是否应该使用(1):user_id,:int或(2):user,:引用。我甚至不确定(2)是否有效。我只是想按"铁轨"的方式来。
class AddUserToUploads < ActiveRecord::Migration
def change
add_column :uploads, :user_id, :integer
end
end
除了Rails 3之外的相关问题。Rails 3迁移:添加参考列?
创建一个迁移文件
rails generate migration add_references_to_uploads user:references
默认外键名称
这将在uploads表中创建一个user_id列作为外键
class AddReferencesToUploads < ActiveRecord::Migration[5.2]
def change
add_reference :uploads, :user, foreign_key: true
end
end
用户模式:
class User < ApplicationRecord
has_many :uploads
end
上传模型:
class Upload < ApplicationRecord
belongs_to :user
end
自定义外键名称:
add_reference :uploads, :author, references: :user, foreign_key: true
这将在上传表中创建一个author_id列作为外键。
用户模式:
class User < ApplicationRecord
has_many :uploads, foreign_key: 'author_id'
end
上传模型:
class Upload < ApplicationRecord
belongs_to :user
end