Hol*_*lly 7 migration ruby-on-rails has-many ruby-on-rails-3
我想在我的应用程序中为两个现有的表/模型添加一个has_many关系,我不太确定如何进行操作?
当我使用新模型之前执行此操作时,rails generate命令为我处理了所有内容,只是rails generate model Photo image:string hikingtrail:references它创建了下面的迁移
class CreatePhotos < ActiveRecord::Migration
def change
create_table :photos do |t|
t.string :image
t.references :hikingtrail
t.timestamps
end
add_index :photos, :hikingtrail_id
end
end
Run Code Online (Sandbox Code Playgroud)
现在我想建立的关系users和photos与每个user has_many :photos.
当我生成迁移以实现此目的时,它不包括add_index :photos, :user_id,这是我应该手动执行的操作还是以下步骤足以在我的数据库中设置此关系?
rails g migration AddUserIdToPhotos user_id:integer
这创造了......
class AddUserIdToPhotos < ActiveRecord::Migration
def change
add_column :photos, :user_id, :integer
end
end
Run Code Online (Sandbox Code Playgroud)
然后运行......
rake db:migrate
建立你的关系就足够了.您可以添加索引以提高记录搜索的速度.实际上有些人建议将索引放到所有外键上.但是现在不要担心,我猜你不会有那么多记录来使用索引.
如果您已经迁移了所有内容并想要添加索引make do:
rails g migration AddIndexToUserIdToPhotos
Run Code Online (Sandbox Code Playgroud)
并在里面添加索引列:
class AddUserIdToPhotos < ActiveRecord::Migration
def change
add_index :photos, :user_id
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5207 次 |
| 最近记录: |