ruby-on-rails - Rails 3 : belongs_to, has_one 和迁移

标签 ruby-on-rails ruby ruby-on-rails-3

我是 Rails 的新手,我是从 Django 背景开始接触它的。我已经接受了这样一个事实,即模型和数据库模式在 Rails 和在线 Django 中是分开的。但是,我仍在努力处理迁移。

我的问题很简单 - 如何使用迁移向模型添加关系?例如,我现在有 ArtistSong 作为 ActiveRecord::Base 子类的空模型,没有任何关系。

我需要开始做这件事:

class Artist < ActiveRecord::Base
  has_many :songs
end

class Song < ActiveRecord::Base
  belongs_to :artist
end

但是我如何使用 rails g migrate 更改架构以反射(reflect)这一点?我正在使用 Rails 3.1.3。

最佳答案

现在,在 Rails 4 中,您可以:

class AddProcedureIdToUser < ActiveRecord::Migration
  def change
    add_reference :users, :procedure, index: true
  end
end

到现有模型

关于ruby-on-rails - Rails 3 : belongs_to, has_one 和迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8368580/

相关文章:

ruby-on-rails - Sidekiq,线程用完 - Rails 离开并且没有收获 connection_pool 线程

ruby-on-rails - Ruby 和 Ruby on Rails 有什么区别?

ruby-on-rails-3 - Rails 3.1 - db :seed 上的堆栈级别太深

ruby-on-rails - 为什么我必须指定文本格式才能使用 ActionMailer 呈现模板?

ruby-on-rails - 为什么密码确认不会留在 div 中?

ruby-on-rails - 如何使用 3 个或语句编写 Pundit 策略?

ruby-on-rails - squeel 中的嵌套查询

ruby-on-rails - Rails 集成测试 : Is Capybara necessary for interacting with Javascript?

mysql - 带有 sinatra 和 activerecord mysql db 重复错误的 Ruby 没有作为异常引发

ruby-on-rails - 用 ruby​​ 完成的基于网络的游戏,为我指明了正确的方向