Я использую Paperclip, и я добавил несколько загрузок файлов на одну из моих моделей. Все работает отлично, за исключением случаев, когда я пытаюсь добавить новые файлы в уже загруженные. Это порождает эту ошибку:500 исправление ошибок и обновление нескольких загружаемых файлов rails
Unexpected error while processing request: expected Hash (got Array) for param `assets_attributes'
Как исправить это, чтобы добавить новые файлы? Заранее спасибо.
asset.rb
class Asset < ActiveRecord::Base
belongs_to :member
belongs_to :listing
attr_accessible :asset
has_attached_file :asset, styles: { large: "700x700>", thumb: "100x100#" }
validates_attachment_size :asset, :less_than_or_equal_to=>10.megabyte
validates_attachment_content_type :asset, :content_type=>['image/jpeg', 'image/jpg', 'image/png', 'image/gif']
end
listing.rb
has_many :assets, :dependent => :destroy
accepts_nested_attributes_for :assets, :allow_destroy => true
attr_accessible :assets_attributes
объявления/_edit_form.html.erb
<%= simple_form_for(@listing, :html => { class: 'form-horizontal ', :multipart => true }) do |f| %>
<% if @listing.errors.any? %>
<%= f.error_notification %>
<div>
<%= file_field_tag('listing_assets_asset', multiple: true, name: "listing[assets_attributes][][asset]", id: 'file-upload3', class: '') %>
</div>
<% end %>
listings_controller.rb
before_filter :authenticate_member!, only: [:new, :create, :edit, :update, :destroy]
before_filter :find_member
before_filter :find_listing, only: [:edit, :update, :destroy]
def new
@listing = Listing.new
respond_to do |format|
format.html # new.html.erb
format.json { render json: @listing }
end
end
# GET /listings/1/edit
def edit
end
# POST /listings
# POST /listings.json
def create
@listing = current_member.listings.new(params[:listing])
respond_to do |format|
if @listing.save
current_member.create_activity(@listing, 'created')
format.html { redirect_to @listing }
format.json { render json: @listing, status: :created, location: @listing }
else
format.html { render action: "new" }
format.json { render json: @listing.errors, status: :unprocessable_entity }
end
end
end
# PUT /listings/1
# PUT /listings/1.json
def update
respond_to do |format|
if @listing.update_attributes(params[:listing])
format.html { redirect_to @listing }
format.json { head :no_content }
else
format.html { render action: "edit" }
format.json { render json: @listing.errors, status: :unprocessable_entity }
end
end
end
private
def find_member
@member = Member.find_by_user_name(params[:user_name])
end
def find_listing
@listing = current_member.listings.find(params[:id])
end
Можете ли вы разместить запрос с консоли сервера? Вы также можете проверить этот вопрос: http://stackoverflow.com/questions/1577631/rails-form-with-multiple-nested-models-causes-issues-with-radio-groups – sixty4bit