表列部分依赖于另一列?

时间:2016-08-22 03:31:44

标签: sql ruby-on-rails sqlite

我希望有两个类型:boolean列,让我们说X和Y,其中Y部分依赖于X.当X为真时,Y可以是true或false,但是当X是假的,Y必须是假的。这可能吗?

class AddPrivacyColumnsToPosts < ActiveRecord::Migration
  def change
    add_column("posts", "public", :boolean, :default => true)
    add_column("posts", "collectable", :boolean, :default => true)
  end
end

其中public为X,collectable为Y,即只能收集公开信息。如果帖子设置为私有(public为false时),则collectable应自动设置为false。

1 个答案:

答案 0 :(得分:2)

我会在保存之前添加一个回复帖子

before_save :set_collectable 

def set_collectable 
  if !public? 
    self.collectable = false 
  end
end