ruby on rails - Carrierwave not saving the file on disk -
ruby on rails - Carrierwave not saving the file on disk -
everyone. please, help me carrierwave , rails 4.
model:
class mediaitem < activerecord::base mount_uploader :media_item, mediaitemuploader end
schema:
create_table "media_items", force: true |t| t.string "file" t.text "description", default: "", null: false t.datetime "created_at", null: false t.datetime "updated_at", null: false end
uploader:
class mediaitemuploader < carrierwave::uploader::base def store_dir "public/" end
controller:
class mediaitemscontroller < applicationcontroller def create @media_item = mediaitem.new(media_item_params) respond_to |format| if @media_item.save format.html { redirect_to @media_item, notice: 'media item created.' } else format.html { render :new } end end end
form:
= form_for @media_item, :html => {:multipart => true} |f| .field = f.label :description = f.text_field :description .field = f.label :file = f.file_field :file .actions = f.submit 'save'
the problem uploaded file not appear in specified dir , "media_item.media_item_url" homecoming empty string in view. however, save recore db:
select file, description media_items; #<actiondispatch::http::uploadedfile:0xba672374>|wetw
my mistake.
instead
mount_uploader :media_item, mediaitemuploader
it must
mount_uploader :file, mediaitemuploader
as "file" field name in db, not "media_item"
ruby-on-rails ruby-on-rails-4 carrierwave
Comments
Post a Comment