Rails - 支持为多个模型创建草稿的好方法

Mat*_*Hui 3 ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.2

我想允许用户创建几个模型的草稿(例如文章,博客文章等).我想通过为每个我目前的模型的模型草案(如articleDraft,blogpostDraft等)实现这一点.有一个更好的方法吗?为应该支持草稿的每个现有模型创建一个新模型似乎很混乱,并且需要做很多工作.

sam*_*207 7

我认为更好的是在表中有一个标志(例如:int列称为草稿),以确定记录是否是草稿.

正如我所看到的那样,将这样一个列放在一个单独的表中的优点:

  1. 你的记录非草稿很简单(只需改变标志)

  2. 你不会重复数据(因为实际上你会在草案和非草稿记录中有相同的内容)

  3. 编码会很简单,没有复杂的登录

  4. 所有数据都在一个地方,因此错误的余地较小

  • 跳过记录中的验证是草稿(你可以使用'with_options'),例如:with_options:if =>:is_admin?做|管理员| admin.validates:password,:length => {:minimum => 10} admin.validates:email,:presence => true end,查看http://guides.rubyonrails.org/active_record_validations_callbacks.html中的5.4 (3认同)