ruby-on-rails - 独立于父模型更新嵌套属性对象
问题描述
我有一个父模型'page'
和嵌套属性模型'page_modules'
,它们同时由“单表继承”模式建模。
我的问题是,当我尝试保存不同的生成'page_modules'
时,如果其中一个未验证,则整个模型和嵌套属性都不会更新,即使其中一些嵌套属性通过了验证。¿ 有没有办法更新所有已验证的'page_modules'
并且只拒绝未验证的'page_modules'
?
解决方案
如果我对您的理解正确,您希望在嵌套属性无效时静默删除它们并继续。您可以使用以下reject_if:
选项执行此操作:
class Page < ApplicationRecord
has_many :page_modules
accepts_nested_attributes_for :page_modules, reject_if: :page_module_invalid?
private
def page_module_invalid?(attributes)
!page_modules.new(attributes).valid?
end
end
推荐阅读
- sql - 我是 SQL Server 的新手。我创建了一个函数,它的作用类似于 charindex
- python - 如何从 Markdown 文件创建树?
- jquery - 在 Django 中使用 jQuery 和 AJAX 动态更新 Web API 结果
- twos-complement - 二进制补码加法。-48 - 23. 是否必须使用 8 位表示?
- react-native - Redux Saga action 异步操作调用了一次但触发了两次
- java - Maven 上的未知生命周期阶段
- amazon-web-services - 了解服务器/客户端路由:亚马逊(?)如何在没有重定向(或历史条目)的情况下重定向我的 SPA?
- c - 编译器或处理器在运行时如何区分静态局部变量?
- python - 如何查找特定频道的 forUsername 参数
- linux - 有没有不使用getppid就可以找到父进程的PID?