我正在使用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作为主键放入数据库?
答案 0 :(得分:1)
听起来您正尝试使用id
覆盖迁移中的默认主键名eventid
。我假设应用程序正在寻找eventid
而不是id
,因为您在模型中使用了set_primary_key :eventid
。
以下是您的需求:
:primary_key主要名称 键,如果要添加 自动。默认为id。如果:id 如果为false,则忽略此选项。
另请注意,这只是设置了 表中的主键。您 另外需要配置 通过模型中的主键 set_primary_key宏。模型没有 从他们的自动检测主键 表定义。