这是我的问题。我有一个附加一个头像的用户模型。此模型有许多个人照片(使用accepts_nested_attributes_for)。
我希望能够在保存用户对象后自动初始化个人照片,无论用户的头像是什么。所以说Bob上传了他的头像,bob会自动从头像中生成一张个人照片(使用正确的不同回形针样式)。
我不确定如何去做这件事。我会把它放在我的控制器或用户模型中的after_save挂钩吗?我正在使用带有数据库存储的Paperclip,所以如果在保存期间以某种方式初始化它会很好,所以我不必将它拉出来...也许我可以使用隐藏的表单字段?
答案 0 :(得分:0)
老实说......我不确定我会推荐这个行动方案。许多人上传不是照片的头像。如果你这样做,当然你应该给用户提供删除照片的选项,同时不删除他们的头像。这意味着您需要复制附件。要做到这一点,你必须挂钩after_avatar_post_process
回调。在此回调中,创建一个新的个人照片对象。在照片模型的photo
附件上,调用personal_photo.photo.assign(avatar.path)
之类的内容。我认为这应该有效,但我没有尝试过。我主要担心的是assign
调用可能无法为附件创建新位置。我认为确实如此,但我绝对不确定。至少,它接近你需要做的事情,应该让你朝着正确的方向前进。