2012-09-08 51 views
1

我想重新創建一個Sinatra應用程序(使用一本書中的食譜)到Rails中。該西納特拉應用程序使用data_mapper,讓你通過使用設置字符串作爲主鍵:鍵=>真Rails:在Rails中製作一個字符串的主鍵3

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

我不知道如何在Rails的做到這一點3.你能解釋一下我會成立標識符字符串作爲主鍵?

另一個問題可能是我正在開發sqlite3,但最終將在Heroku上託管'pg。'如果這太複雜了,請假裝我只使用sqlite3

回答

1

Rails將在數據庫中找到具有主鍵的列並自動使用它。你只需把它放進遷移:

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

的ActiveRecord會自動指向id此列。

更多信息請登錄http://guides.rubyonrails.org/migrations.html

4

在軌道上3.2+還需要通過id: false,像這樣

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