【发布时间】:2018-02-09 14:05:08
【问题描述】:
class Project < ApplicationRecord
has_one :description
end
class Description < ApplicationRecord
belongs_to :project
end
- 参考描述迁移/模型。
此时,如果没有附加项目,我无法在数据库中保存描述。 但是我可以创建一个没有描述的项目。
在我的情况下,如果项目没有描述,我想禁止创建它。
我认为有两种方法:
首先是在Description类中添加一个“has_one :project”,在Project中添加一个“belongs_to :description” 第二个是在项目中进行验证,例如“验证:描述,存在:真”
我不确定我应该更喜欢什么。第一个选项对我来说似乎很乱,我已经设置了模型之间的关系,所以如果我为相同的两个模型再添加一个,我觉得它太多了。
而且我不确定这是验证责任(如果没有描述,则禁止创建项目),还是数据库/关系责任。因为正如我所说,仅使用 ActiveRecord 我无法在没有项目的情况下创建描述,是不是有点像验证?
无论如何,我猜我对第二选择的“验证”是错误的。
【问题讨论】:
标签: ruby-on-rails validation activerecord