Перво-наперво, вы монтируете свой загрузчик в столбец с именем: image, но из вашей картинки вашей БД у вас нет столбца с указанным именем.
1: Создайте столбец для изображений, называемый изображением ("поскольку это то, что вы загружаете.")
rails g migration add_image_to_images image:string
rake db:migrate
2: Обновите attr_accessible вашей модели, чтобы использовать новый столбец.
class Image < ActiveRecord::Base
belongs_to :item
mount_uploader :image, ImageUploader
attr_accessible :item_id, :name, :image
end
3: Обновление вида
<%= f.fields_for :images do |builder| %>
<p>
<%= builder.text_field :name %>
<%= builder.file_field :image %>
</p>
<% end %>
4: удалить неиспользуемое монтирование из класса Item.
class Item < ActiveRecord::Base
attr_accessible :category_id, :user_id, :title, :description, :published, :start_date, :end_date, :images_attributes
has_many :images, :dependent => :destroy
accepts_nested_attributes_for :images, :reject_if => :all_blank, :allow_destroy => true
end
Я оставил: имя на месте на изображении для использования в качестве произвольного значения, которое вы можете добавить к своему изображению.
Кроме того, абстрагируя вашу модель изображения, как вы, я бы также предположил, что вы хотите отслеживать порядок изображений, так что, возможно, дополнительный столбец для этого был бы хорошей идеей.
Надеюсь, это поможет.