Ruby on rails Rails引用具有非整数主键的模型
我有一个表,其迁移如下:Ruby on rails Rails引用具有非整数主键的模型,ruby-on-rails,activerecord,rails-migrations,Ruby On Rails,Activerecord,Rails Migrations,我有一个表,其迁移如下: class CreateClient < ActiveRecord::Migration def change create_table :clients, :primary_key => :tag do |t| t.string :name end change_column :clients, :tag, :string, limit: 4 end end 但是结果表有一个名为client_id的字段,它是i
class CreateClient < ActiveRecord::Migration
def change
create_table :clients, :primary_key => :tag do |t|
t.string :name
end
change_column :clients, :tag, :string, limit: 4
end
end
但是结果表有一个名为client_id的字段,它是int,我是否应该将任何参数传递给references方法,以便它将字段创建为varchar
提前感谢您我相信您可以使用execute强制rails以您想要的方式设置主键:
class CreateClient < ActiveRecord::Migration
def change
create_table :clients, :id => false do |t|
t.string :name
end
execute "ALTER TABLE clients ADD PRIMARY KEY (name);"
然后在您的客户机模型中设置do set_primary_key:name我相信您可以使用execute强制rails以您想要的方式设置主键:
class CreateClient < ActiveRecord::Migration
def change
create_table :clients, :id => false do |t|
t.string :name
end
execute "ALTER TABLE clients ADD PRIMARY KEY (name);"
然后在您的客户端模型中设置do set_primary_key:nameUse:id=>false不生成Client_id列。Use:id=>false不生成Client_id列。他已经按照他想要的方式设置了主键,他只想将该主键用作引用。这并不是在回答问题,他已经按照自己想要的方式设置了主键,他只想将主键用作参考。这并没有回答问题