Rob*_*bin 6 sqlite database-design ruby-on-rails xor
我想要的是,使用Rails 3.1以某种方式构建它:

如果A设置了id b_id,则不应该为其设置id c_id.而且反过来也是如此.
我希望我可以从数据库级别进行迁移(检查约束?).这有点可能吗?或者在具有验证的模型中执行此操作是否更实惠?
我的环境:
您可以通过多态关联来实现此目的,尽管模式看起来与您所拥有的不完全相同,但您可以实现相同的目标,让一个项目A属于 aB或 a C,但绝不能同时属于两者。
您可以在这里阅读更多信息:http ://guides.rubyonrails.org/association_basics.html#polymorphic-associations
在该链接给出的示例中,A是他们的Picture, 和Employee是Proudct您的B和C:
(从上面链接的来源复制):
class Picture < ActiveRecord::Base
belongs_to :imageable, :polymorphic => true
end
class Employee < ActiveRecord::Base
has_many :pictures, :as => :imageable
end
class Product < ActiveRecord::Base
has_many :pictures, :as => :imageable
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1231 次 |
| 最近记录: |