Ruby on rails 如何覆盖RubyonRails 4.0中的默认主键列;?
我有一个已经存在的数据库模式,其中表的主键是字符串列,还有一些表的主键是多列。我想在rails中映射这个模式,但我不知道如何覆盖默认主键(rails框架创建的列id) 您可以像这样覆盖主键Ruby on rails 如何覆盖RubyonRails 4.0中的默认主键列;?,ruby-on-rails,overriding,primary-key,rails-models,Ruby On Rails,Overriding,Primary Key,Rails Models,我有一个已经存在的数据库模式,其中表的主键是字符串列,还有一些表的主键是多列。我想在rails中映射这个模式,但我不知道如何覆盖默认主键(rails框架创建的列id) 您可以像这样覆盖主键 class Book < ActiveRecord::Base self.primary_key = 'author' end classbook
class Book < ActiveRecord::Base
self.primary_key = 'author'
end
classbook
我不知道你想做什么。在Rails中更改主键是一个错误
但对于这一点,请尝试在您的迁移中这样做
class Foos < ActiveRecord::Migration
def self.up
create_table :foos, :id => false do |t|
t.string :my_id
t.timestamps
end
end
end
class-Foosfalse do | t |
t、 string:my_id
t、 时间戳
结束
结束
结束
我在书中读到过这种方法,它说它只覆盖列名,例如rails中priamry键的默认列名是id,现在是它的作者,但数据类型仍然是整数。我的模式中有一个字符串作为主键,因此这并不能解决我的问题。为什么你应该试着让自己远离它