我有2个型号:
class Book < ActiveRecord::Base
has_many :book_versions
accepts_nested_attributes_for :book_versions, allow_destroy: true
validates_associated :book_versions
class BookVersion < ActiveRecord::Base
has_many :collection_items
has_many :collections, through: :collection_items
belongs_to :book
validates_presence_of :price, :isbn #<-- validates presence
当我去书籍/新书并创作一本有多本书版本的书时,一切都很好用。当我离开价格或isbn空白时,验证会触发。
然而,在我创建了一本包含多个图书版本的图书后,我又回到了编辑表单并删除了现有关联book_version的价格之一,并且我提交了图书表单,它“成功更新了图书”。这里有两个问题:
validates_presence_of :price
未被解雇以下是部分参数的副本:
“book_versions_attributes”=&gt; {“0”=&gt; {“name”=&gt;“alt”,“isbn”=&gt;“”, “price”=&gt;“”,“famis_number”=&gt;“”,“famis_price”=&gt;“”, “weight_in_pounds”=&gt;“”},“1”=&gt; {“name”=&gt;“bb”, “isbn”=&gt;“123123123123222222”,“price”=&gt;“”,“famis_number”=&gt;“”, “famis_price”=&gt;“”,“weight_in_pounds”=&gt;“1.0”,“库存”=&gt;“08”, “id”=&gt;“1030”},...
所有内容都应该“保存”,但是当我检查数据库时,bb
book_version仍然有旧价格。
为什么它会默默地失败,为什么我的验证没有被解雇?