Ruby on rails 3 更新Rails中多态关联的时间戳

Ruby on rails 3 更新Rails中多态关联的时间戳,ruby-on-rails-3,polymorphic-associations,Ruby On Rails 3,Polymorphic Associations,我有一个照片模型,可以属于其他两个模型,这是通过多态关联捕获的: has_many :photos, :as => photo_container 我想在创建新照片时更新photo_容器模型的时间戳。我使用照片模型中的“创建后”回调来执行此操作: self.photo_container.update_attribute(:updated_at, Time.now) 由于我的两个photo_容器模型都有一个update_属性字段,它应该可以正常工作,但是,我在回调中得到了对应行的以下异

我有一个照片模型,可以属于其他两个模型,这是通过多态关联捕获的:

has_many :photos, :as => photo_container
我想在创建新照片时更新photo_容器模型的时间戳。我使用照片模型中的“创建后”回调来执行此操作:

self.photo_container.update_attribute(:updated_at, Time.now)
由于我的两个photo_容器模型都有一个update_属性字段,它应该可以正常工作,但是,我在回调中得到了对应行的以下异常:

NameError (uninitialized constant Photo::PhotoContainer)

当然,如果我检查photo_容器的类型、加载模型并更改时间戳,它就可以正常工作,但它不是干净/通用的。有什么想法吗?

使用关联中的触摸选项。它应该很好用。比如:

class Picture < ActiveRecord::Base
  belongs_to :imageable, :polymorphic => true, :touch=>true
end
类图片true,:触摸=>true
结束

使用关联中的触摸选项。它应该很好用。比如:

class Picture < ActiveRecord::Base
  belongs_to :imageable, :polymorphic => true, :touch=>true
end
类图片true,:触摸=>true
结束

Fantastic option然而,它仍然给了我同样的错误。您可能会对模型有一些问题。用定义更新你的问题。也许其他人或我可以帮忙好吧,现在可以了,我没有说明这种关系是多态的,而且不知怎么的,因为我从来没有访问过这两个模型的photo_容器,所以我从来没有遇到过问题。很高兴我这么做了,因为它使用起来更干净:touch:)很棒的选项,但是,它仍然给了我同样的错误。您可能会对模型有一些问题。用定义更新你的问题。也许其他人或我可以帮忙好吧,现在可以了,我没有说明这种关系是多态的,而且不知怎么的,因为我从来没有访问过这两个模型的photo_容器,所以我从来没有遇到过问题。很高兴我这么做了,因为它使用起来更干净:touch:)