2

比方说:

[ Micropost ] -> has_one -> [ MicropostPhotoAlbum ] -> has_many -> [ MicropostPhotos ]

如果 Micropost 有一张照片,它就不需要 MicropostPhotoAlbum,我只需在我的 microposts 表中添加一个“图像”列,就可以顺利地使用carrierwave。

我下面的表格可以正常工作:

   = form_for @micropost, :remote => true do |f|
        = f.file_field :image  # Needed for image previewing with html5 file api
        = f.hidden_field :user_id
        = f.text_area :content
        = f.submit "Post"

我需要做的就是上传到我的 micropost 模型,然后我就可以设置好了。图片路径会直接上传到 microposts 表的图片列,例如 photo.png。

正如您在上面看到的,每个微博都没有任何照片,而是有一个包含许多照片的相册。现在我的表单将无法工作,因为将有一个 micropost_album_id 列而不是一个图像列。

如何使用我当前的表单将照片上传到照片表并在一次提交中发布我的微博内容?除了恢复到让每个微博都有一张照片之外,还有什么简单的方法可以解决这个问题吗?

亲切的问候

4

1 回答 1

2

这看起来像是嵌套属性的工作。

是一篇关于表单中嵌套属性的(旧的,不可否认的)文章。fields_for是关键。

于 2012-05-10T05:36:00.683 回答