2
我有一个已经存在的数据库模式,这些数据库模式的表格有一个字符串列作为主键,还有一些表格有多个列作为键。我想在rails中映射这个模式,但我不知道如何覆盖默认主键(由rails框架创建的列标识)。如何在rails 4.0中覆盖ruby中的默认主键列。
我有一个已经存在的数据库模式,这些数据库模式的表格有一个字符串列作为主键,还有一些表格有多个列作为键。我想在rails中映射这个模式,但我不知道如何覆盖默认主键(由rails框架创建的列标识)。如何在rails 4.0中覆盖ruby中的默认主键列。
您可以覆盖主键这样
class Book < ActiveRecord::Base
self.primary_key = 'author'
end
我不知道你想做什么。这是改变Rails中主键的错误。
但是对于这个问题,试着在你的迁移中做到这一点。
class Foos < ActiveRecord::Migration
def self.up
create_table :foos, :id => false do |t|
t.string :my_id
t.timestamps
end
end
end
我读到我的书这种做法,它说这就是只覆盖列名,例如用于在轨priamry键的默认列名是ID,现在它的作者,但数据类型仍然是整数。我的模式中有一个字符串作为priamry键,因此这不是我的问题。 –
[将Rails中的主键改为字符串](http://stackoverflow.com/questions/750413/altering-the-primary-key-in-rails-to-be-a-string#answer-6714889)为什么你应该尽量避免这样做 – MilesStanfield