Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/63.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 - Fatal编程技术网

Ruby on rails 在模型关系中指定不同的外键

Ruby on rails 在模型关系中指定不同的外键,ruby-on-rails,Ruby On Rails,我有两个模特,一个是员工,一个是医院,在一个有很多关系的地方。医院有很多员工。我的员工表如下所示: class CreateStaffs < ActiveRecord::Migration[5.1] def change create_table :staffs do |t| t.string :Title t.string :FirstName . . . t.integer :hospital_id

我有两个模特,一个是员工,一个是医院,在一个有很多关系的地方。医院有很多员工。我的员工表如下所示:

class CreateStaffs < ActiveRecord::Migration[5.1]
  def change
    create_table :staffs do |t|
      t.string :Title
      t.string :FirstName
      .
      .
      .
      t.integer :hospital_id

      t.timestamps
    end
  end
end
create_table :staffs do |t|      
  ...
  t.string :hospital_name
end

add_foreign_key :staffs, :hospitals, column: :hospital_name, primary_key: :name
class CreateStaff
我不能指定其他外键,例如医院名称吗


谢谢

您需要创建如下表:

class CreateStaffs < ActiveRecord::Migration[5.1]
  def change
    create_table :staffs do |t|
      t.string :Title
      t.string :FirstName
      .
      .
      .
      t.integer :hospital_id

      t.timestamps
    end
  end
end
create_table :staffs do |t|      
  ...
  t.string :hospital_name
end

add_foreign_key :staffs, :hospitals, column: :hospital_name, primary_key: :name

其中使用
primary\u key::name
引用
hospitals
表的列名。

我真的不鼓励您在Rails中使用驼峰案例名称。您应该将
Title
重命名为
Title
并将
FirstName
重命名为
FirstName
谢谢您的建议@coorassed您是否在“员工”表中有一个字段
hospital\u name
?或者你打算添加它吗?我想删除医院id,改用医院名@JagdeepSingh