まあ言ってみれば:
[マイクロポスト] -> has_one -> [マイクロポスト写真アルバム] -> has_many -> [マイクロポスト写真]
Micropost に写真が 1 枚あれば、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"
私がする必要があるのは、マイクロポスト モデルにアップロードをマウントすることだけです。画像パスは、マイクロポスト テーブルの画像列 (photo.png など) に直接アップロードされます。
上記のように、各マイクロポストには写真はありませんが、代わりに多くの写真を含む 1 つのアルバムがあります。画像列の代わりに micropost_album_id 列が表示されるため、フォームが機能しなくなりました。
現在のフォームを使用して写真を写真テーブルにアップロードし、マイクロポストのコンテンツを 1 回の送信で投稿するにはどうすればよいですか? 各マイクロポストに 1 枚の写真を表示するように戻す以外に、これを回避する簡単な方法はありますか?
敬具