2016-03-01 60 views

回答

2

您可以覆盖主键这样

class Book < ActiveRecord::Base 
    self.primary_key = 'author' 
end 
+0

我读到我的书这种做法,它说这就是只覆盖列名,例如用于在轨priamry键的默认列名是ID,现在它的作者,但数据类型仍然是整数。我的模式中有一个字符串作为priamry键,因此这不是我的问题。 –

+0

[将Rails中的主键改为字符串](http://stackoverflow.com/questions/750413/altering-the-primary-key-in-rails-to-be-a-string#answer-6714889)为什么你应该尽量避免这样做 – MilesStanfield

0

我不知道你想做什么。这是改变Rails中主键的错误。

但是对于这个问题,试着在你的迁移中做到这一点。

class Foos < ActiveRecord::Migration 
    def self.up 
     create_table :foos, :id => false do |t| 
      t.string :my_id 
      t.timestamps 
     end 
    end 
end