Без дополнительной таблицы обойтись может быть и можно, но решение будет слишком сложным. Поэтому нужно сделать таблицу post_attachments, в миграции связать с постами и естественно нужно поле image, должно получиться что-то вроде:
Сlass CreatePostAttachment < ActiveRecord::Migration
def change
create_table :post_attachments do |t|
t.references :post, index: true
t.string :image
t.timestamps null: false
end
add_foreign_key :post_attachments, :posts
end
end
Раз уж вы пользуетесь чистым html, то вьюха должна получиться примерно такой, могу ошибиться, привык к haml:
<label for="post_image">Выберите одну или несколько фотографий</label>
<div class="field">
<input multiple="multiple" name="post_attachments[image][]" type="file" id="post_attachments_image">
</div>
Контроллер:
if @post.save
unless params[:post_attachments].blank?
params[:post_attachments]['image'].each do |a|
@post.post_attachments.create!(:image => a)
end
redirect :"/"
....
@post.image = params[:image]
и соответствующее поле соответственно нужно убрать из постов.
В моделях:
class PostAttachment < ActiveRecord::Base
mount_uploader :image, ImagesUploader
belongs_to :post
end
class Post < ActiveRecord::Base
has_many :post_attachments, :dependent => :destroy
end