我有一个模型A,它具有与一对一关联的另一个模型B,C,D。 创建A的记录时,我还想创建B,C和D实例,并跳过对这三个实例的验证。 在Rails中可以用某种优雅的方式做吗?

谢谢

===============>>#1 票数:1 已采纳

终于发现我可以在“父”模式下定义它,如下所示:

class GrantApplication < ActiveRecord::Base
     ...
     belongs_to :budget, validate: false, autosave: true
     ...
end

===============>>#2 票数:0

您可以尝试执行create动作来调用带有“ validate:false”选项的保存方法。 如果要在A类中保留验证,则可以尝试在每个模型中使用“ if”语句跳过B,C,D类中的验证。 例如。 validates :filed, unless: :new_record?

  ask by kasi translate from so

未解决问题?本站智能推荐:

1回复

Rails:验证关联并保存了吗?

我知道validates_associated ,但是我不确定它是否可以满足我的需要... 我有一个带有has_one Attachment的模型Photo -在保存照片之前,我需要确保照片具有关联的有效保存的附件。 validates_associated是否涵盖所有内容,还是有其
1回复

Rails ActiveRecord:跳过关联的验证

我正在重新提出这个问题,因为代码和示例是错误的(它实际上适用于所示的情况)。 鉴于这些模型: 我们可以在创建图书时跳过验证: 但是,如果我们从数据库中检索无效的Book并将其分配给Author中的关联,则不允许我们保存Author: 这是错误: Activ
2回复

Rails 4级联保存关联与归属验证

我在自动保存以这种方式创建的对象时遇到了麻烦。 考虑使用以下模型: 因此,当我尝试执行以下操作时: 我得到以下内容: 但是,当我省略对belongs_to search_term的验证时。 一切都保存正确。 我的问题是:如何在对子对象进行验证的同时保存父对象及其
1回复

Rails 2.3.8:在保存之前验证对象显示以前的引用而不是更新的引用

我的网站上有一个表单允许更新对象(即Book)。 该书包含引用Author类的字段author_id。 表单允许更改作者。 保存书籍时,会运行验证,但是当某个验证调用self.author时,它将接收前一个作者而不是所选的新作者。 为了解决这个问题,我总是必须通过以下方式重新加载新作
2回复

Rails有很多关联验证

每次更新父模型时,我都需要检查关联属性的状态验证。 在我的user.rb中 我需要在用户模型更新时为历史记录添加验证,我知道accepts_nested_attributes在通过表单添加用户时会负责验证,即使在控制台中,每次用户模型更新时,我都需要检查验证, 如果我加
1回复

Rails 3复杂的验证设计

我有一个Contribution和Reward模型。 贡献belongs_to奖励。 我希望贡献只有在其金额大于其奖励的minimum_contribution时才有效。 所以我有 我的问题是适合SOMECONDITION 。 在运行此验证之前,我需要确保 贡献的有
2回复

Rails对关联的自定义验证

我有一个用户。 一个用户可以有很多表。 实际只有5。 在我的桌子模型中 这一切都很好,如果我尝试创建表并且我的用户已经有5个表,则会得到一个页面,其中显示 TablesController#create中的ActiveRecord :: RecordInvalid
1回复

验证Rails中的关联模型

我目前正在研究饮食跟踪应用程序。 我有一个FoodEntry模型,其中每个实例引用另一个表中的单个food ,并且还引用另一个表中的measurement单位。 class FoodEntry < ActiveRecord::Base belongs_to :food belo
2回复

努力了解如何在rails中保存模型和关联

我是ruby和rails的新手,我希望尽可能遵循编码标准和惯例,所以我不会养成任何坏习惯。 我有两个模型:课程和位置。 课程属于一个位置,因为课程只能有一个位置。 一个位置has_many课程,因为一个位置可以由多个课程共享。 创建课程时,可能已存在通过其ID找到的位置。 或者该位
3回复

rails中的has_one关系验证

由于has_one不提供允许验证的before_add回调,因此即使新的关联没有通过验证,如何防止rails破坏旧关联? 苏珊:has_one:衬衫衬衫:belongs_to:苏珊 susan.shirt = a_nice_shirt 这会破坏事先存在的任何关联,即使新的衬衫从