at.*_*at. 13 activerecord ruby-on-rails foreign-keys ruby-on-rails-3 ruby-on-rails-3.2
如何在ActiveRecord中创建外键?我的模型中有以下内容:
class Student < ActiveRecord::Base
attr_accessible :name, :level_id
belongs_to :level
end
class Level < ActiveRecord::Base
attr_accessible :number
has_many :students
end
Run Code Online (Sandbox Code Playgroud)
但schema.rb和开发sqlite3数据库没有任何指示外键约束是使用level_id字段设置的.这是我必须手动除ActiveRecord或Rails之外的事情吗?我错过了一步吗?
使用Rails 3.2.8
mgu*_*mon 13
ActiveRecord不需要外键约束来正确映射关系.您可以使用验证让Rails应用程序确保数据完整性.
Rails迁移不提供帮助程序来创建外键.您可以在迁移中为约束创建自己的SQL,也可以使用Foreigner Gem.Foreigner将提供帮助方法来在迁移中创建约束:
add_foreign_key(:students, :levels)
Run Code Online (Sandbox Code Playgroud)
Seg*_*ult 13
如果你有轨> = 4.2和使用mysql,mysql2或postgresql适配器,那么您可以使用add_foreign_key您的迁移这样的方法:
# add a foreign key to `articles.author_id` referencing `authors.id`
add_foreign_key :articles, :authors
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20021 次 |
| 最近记录: |