我有两个这样的模型: -
模型1 - 卡片 - 包含首页的感兴趣数据的表示
附件名称= cardimage
模型2 - 用户 - 包含用户
附件名称=头像
当我创造!一张新卡,我希望将用户模型中的头像作为新的cardimage复制到卡片模型中。
这是否有一个简单的衬垫?
Ruby / Rails / Paperclip
答案 0 :(得分:34)
这应该可以解决问题,如果模型关联,你可以使用after_create
回调,如果不是,我会建议在创建卡的控制器操作中使用它。
instance_of_model_one.cardimage = instance_of_model_two.avatar
instance_of_model_one.save
答案 1 :(得分:2)
old_avatar = model1.avatar;
model2.avatar.create(attachment: old_avatar.attachment);
model2.save;
它对我有用。
答案 2 :(得分:0)
假设您有2个模型:
您必须将profile_image
从User with id = 1
复制到Player with id = 10
。您可以执行以下操作:
user = User.find(1)
player = Player.find(10)
player.profile_image = user.profile_image
player.save!
有时这可能会保存文件,但文件大小为0字节。在这种情况下,请尝试以下操作:
user = User.find(1)
player = Player.find(10)
player.profile_image = user.profile_image.url
player.save!
这将完成工作!
答案 3 :(得分:0)
理想情况下,@ cih提到的方法应该可行:
> with(df, df[order(jk, jj, jn),])
jj jk jn
5 bd 0 0
6 bi 0 0
4 cj 0 1
3 ak 1 1
2 al 1 0
1 an 1 2
7 bj 2 3
9 bl 2 1
8 bn 2 1
但就我而言,它是在S3中创建一个空白文件。为了解决该问题,我尝试了以下方法,并且有效:
instance_of_model_one.cardimage = instance_of_model_two.avatar
instance_of_model_one.save
通过URL而不是第一条语句中的对象解决了该问题。