Sam*_*ing 5 ruby ruby-on-rails ruby-on-rails-3
我是Rails的新手,我是从Django背景来的.我已经接受了这样一个事实,即模型和数据库模式在Rails,在线Django中是分开的.但是,我仍然在处理迁移问题.
我的问题很简单 - 如何使用迁移向模型添加关系?例如,我现在拥有Artist和Song作为空模型的子类ActiveRecord::Base,没有任何关系.
我需要继续这样做:
class Artist < ActiveRecord::Base
has_many :songs
end
class Song < ActiveRecord::Base
belongs_to :artist
end
Run Code Online (Sandbox Code Playgroud)
但是,如何更改架构以反映这种情况rails g migrate?我正在使用Rails 3.1.3.
您必须在迁移文件中添加外键,如下所示:
def change
create_table :songs do |t|
t.references :artist
end
add_index :songs, :artist_id
end
Run Code Online (Sandbox Code Playgroud)
现在,在Rails 4中,您可以:
class AddProcedureIdToUser < ActiveRecord::Migration
def change
add_reference :users, :procedure, index: true
end
end
Run Code Online (Sandbox Code Playgroud)
到现有的模型
您可以生成迁移
rails g migration AddProcedureIdToUser procedure:references
Run Code Online (Sandbox Code Playgroud)
谢谢
| 归档时间: |
|
| 查看次数: |
9423 次 |
| 最近记录: |