Ruby on rails 当我保存仅更改文件字段的嵌套模型时,不会触发保存事件
我使用的是rails 3.2.11、mongoid 3.0.18、carrierwave 0.7.1和carrierwave mongoid 0.3.0 两种型号:产品有许多组件。组件有一个文件字段。我使用gem嵌套表单在产品页面上添加许多组件表单Ruby on rails 当我保存仅更改文件字段的嵌套模型时,不会触发保存事件,ruby-on-rails,mongoid,carrierwave,nested-forms,Ruby On Rails,Mongoid,Carrierwave,Nested Forms,我使用的是rails 3.2.11、mongoid 3.0.18、carrierwave 0.7.1和carrierwave mongoid 0.3.0 两种型号:产品有许多组件。组件有一个文件字段。我使用gem嵌套表单在产品页面上添加许多组件表单 class Product include Mongoid::Document include Mongoid::Timestamps field :title field :image embeds_many :compon
class Product
include Mongoid::Document
include Mongoid::Timestamps
field :title
field :image
embeds_many :components, cascade_callbacks: true
accepts_nested_attributes_for :components, allow_destroy: true
end
class Component
include Mongoid::Document
include Mongoid::Timestamps
field :title
field :author
field :file
embedded_in :product
mount_uploader :file, BaseFileUploader
end
控制器:
class ProductsController < BaseController
def update
resource = Product.find(params[:id])
if resource.update_attributes(params[:product])
redirect_to collection_path
else
resource.components.build unless resource.components # there should be always one component
render :edit
end
end
end
当我改变的时候!此字段的值只有一个文件字段,没有对db的保存查询
但当我在控制器中添加力保存时
class ProductsController < BaseController
def update
resource = Product.find(params[:id])
if resource.update_attributes(params[:product])
resource.components.each do |component|
component.save!
end
redirect_to collection_path
else
resource.components.build unless resource.components # there should be always one component
render :edit
end
end
end
而且它有效!你知道这是什么原因吗 我也看到了这个问题。如果我更新了另一个字段以及嵌入文档上的文件,则会触发上载。如果只是文件,什么也不会发生