1

我正在使用 RadRails 创建我的 MYSQL 数据库表。这是迁移任务:

class CreateEvents < ActiveRecord::Migration
  def self.up
    create_table :events do |t|
      t.string :eventname
      t.string :evententryurl
      t.string :eventurl

      t.timestamps
    end
  end

  def self.down
    drop_table :events
  end
end

然后我运行一个 db:migrate Rake 任务。这将在数​​据库表中创建以下字段:

id
eventname
evententryurl
eventurl

好的,到目前为止。我遇到的问题是当我运行应用程序并转到http://localhost/events/new 时,应用程序正在寻找 eventid,因为它是主键,而不是 id。如何更改我的迁移任务,以便它自动将 eventid 作为主键放入数据库?

4

1 回答 1

1

听起来您正试图ideventid. 我假设应用程序正在寻找eventid而不是id因为您set_primary_key :eventid在模型中使用。

这是您需要的:

http://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/SchemaStatements.html#method-i-create_table

:primary_key 主键的名称,如果要自动添加的话。默认为 id。如果 :id 为 false,则忽略此选项。

另请注意,这只是设置表中的主键。您还需要通过 set_primary_key 宏在模型中配置主键。模型不会从其表定义中自动检测主键。

于 2011-01-12T19:32:39.783 回答