1

我正在尝试将 Sinatra 应用程序(使用书中的食谱)重新创建到 Rails 中。Sinatra 应用程序使用 data_mapper,它允许您使用 :key => true 将字符串设置为主键

 include DataMapper::Resource
  property  :identifier,  String, :key => true
  property  :created_at,  DateTime 

我不确定如何在 Rails 3 中执行此操作。您能解释一下如何将标识符字符串设置为主键吗?

另一个问题可能是我正在 sqlite3 上进行开发,但最终将使用“pg”托管在 Heroku 上。如果这太复杂了,请假装我只使用 sqlite3

4

2 回答 2

5

在 rails 3.2+ 你还需要通过id: false,像这样

create_table :products, id: false do |t|
  t.string :identifier, :primary_key => true
end
于 2014-02-24T18:31:25.350 回答
2

Rails 会在数据库中找到具有主键的列并自动使用它。您只需将其放入迁移中:

create_table :products do |t|
  t.string :identifier, :primary_key => true
end

ActiveRecord 将自动指向id该列。

更多信息请访问http://guides.rubyonrails.org/migrations.html

于 2012-09-08T03:29:05.467 回答