【发布时间】:2010-09-11 17:28:44
【问题描述】:
我有以下型号:
class Instance < ActiveRecord::Base
has_many :users
has_many :books
end
class User < ActiveRecord::Base
belongs_to :instance
end
class Book < ActiveRecord::Base
belongs_to :instance
end
我现在想添加一个 BookRevision 表,其中包含以下列 (id, user_id, version # (auto increment), diff (old book copy), 时间戳) 逻辑:
- 创建图书时,会生成一条记录 添加到 BookRevision 表中,所以 我们知道是谁创造了这本书 第一名
- 更新图书时,会添加一条带有 user_id 的记录(可以是
不同的用户)和新版本
和旧书文本,用作存档。
鉴于我的导轨中有实例、用户、书籍表实现 添加,这些是使上述内容变为现实的正确步骤吗? - 为 BookRevision 表添加迁移.... rails 生成迁移 AddTableBookRevision user_id:integer 版本:整数差异:文本 - 然后更新模型如下:
class Instance < ActiveRecord::Base
has_many :users
has_many :books
end
class User < ActiveRecord::Base
belongs_to :instance
end
class Book < ActiveRecord::Base
belongs_to :instance
has_many :BookRevisions
end
class BookRevision < ActiveRecord::Base
belongs_to :Book
end
然后在我的控制器中,当添加一本新书?现在我有:
@book = Book.create(params[:book].merge(:instance_id =>
current_user.instance_id))
如何更新它以说明 BookRevision 关联? 感谢您帮助我!
【问题讨论】:
标签: ruby-on-rails activerecord ruby-on-rails-3