Вы немного не понимаете, как работает Carrierwave. В будущем для решения подобных проблем имеет смысл почитать исходники используемой вами библиотеки. Метод
mount_uploader :attachment добавляет в модель метод
def attachment=(blabla)
...
end
При этом не ожидается, что
blabla - это массив.
На Вашем месте я бы связал Вашу модель связью
one_to_many как то так:
class Dcmnt
include Mongoid::Document
...
has_many :attachments
accepts_nested_attributes_for :attachments
end
class Attachment
include Mongoid::Document
...
belongs_to :dcmnt
mount_uploader :file, Uploader
end
В контроллере вместо:d = Dcmnt.new(
:published => params[:published],
:name => params[:name],
:description => params[:description],
:created_at => Time.now
)
d.attachment = params[:attachments]
сделать:
d = Dcmnt.new(
:published => params[:published],
:name => params[:name],
:description => params[:description],
:attachments_attributes => params[:attachments_attributes]
:created_at => Time.now
)
Кстати, вместо
:created_at => Time.now
можно добавить в модель
include Mongoid::Timestamps::Created
Во вьюхе как-то так:%div.form-group
%label Attachments
%input{:type => "file", :name => "attachments_attributes[0][file]"}
%input{:type => "file", :name => "attachments_attributes[1][file]"}
%input{:type => "file", :name => "attachments_attributes[2][file]"}
Прим.:
1. Для форм желательно все же использовать
хелперы
2. Название Вашей модели слишком уж неочевидное. Рубисты этого не любят.