【问题标题】:Rails: making a string the primary key in Rails 3Rails:使字符串成为 Rails 3 中的主键
【发布时间】:2012-09-08 03:15:35
【问题描述】:

我正在尝试将 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

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3


    【解决方案1】:

    在 Rails 3.2+ 上,您还需要传递 id: false,类似这样

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

    【讨论】:

      【解决方案2】:

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

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

      ActiveRecord 会自动将id 指向该列。

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

      【讨论】:

        猜你喜欢
        • 2016-04-10
        • 2013-03-29
        • 1970-01-01
        • 1970-01-01
        • 2011-04-14
        • 1970-01-01
        • 2011-07-20
        • 2011-10-25
        • 1970-01-01
        相关资源
        最近更新 更多