С Новым годом! Форум программистов, компьютерный форум, киберфорум
Ruby
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
20 / 20 / 4
Регистрация: 31.10.2010
Сообщений: 1,240
Записей в блоге: 2

Carrierwave: Не сохраняются файлы в uploads

20.02.2016, 06:41. Показов 996. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день.
Работаю на связке Ruby + Sinatra + Carrierwave. Почему-то не сохраняются файлы, которые я подгружаю с помощью Carrierwave в uploads. В БД имена файлов указаны.
Модель User:
Ruby
1
2
3
4
require 'carrierwave'
class User < ActiveRecord::Base
  mount_uploader :avatar, AvatarUploader
end
Сам AvatarUploader:
Ruby
1
2
3
class AvatarUploader < CarrierWave::Uploader::Base
  storage :file
end
В таблице Users создал поле avatar, которое заполняется именем загруженного файла.
А в /public/uploads не помещаются файлы.
Подскажите, в чем может быть причина?
Спасибо
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.02.2016, 06:41
Ответы с готовыми решениями:

Не сохраняются файлы
Программа просто подвисает. Я понимаю, что возможно я не правильно написал процедуры, но данные очень маленькие - тестовые. И я не нашёл в...

Не сохраняются файлы
Работаю с WordPress, проблема состоит в том, что когда в редакторе изменяю js файл, на компьютере сохраняются изменения, обновляю браузер...

На флешке не сохраняются файлы
Здравствуйте! Появилась такая проблемка - при открытии word файлов (.doc .docx) со съемного носителя и редактировании word не дает...

8
the hardway first
Эксперт JS
 Аватар для j2FunOnly
2475 / 1847 / 910
Регистрация: 05.06.2015
Сообщений: 3,610
20.02.2016, 08:17
Цитата Сообщение от Костяныч Посмотреть сообщение
Сам AvatarUploader:
Это весь код?
В логах что? sinatra...
1
20 / 20 / 4
Регистрация: 31.10.2010
Сообщений: 1,240
Записей в блоге: 2
20.02.2016, 08:52  [ТС]
j2FunOnly, весь, большего и не надо. В доках также описано.
Странно, сейчас вообще не записывает в бд, хоть данные и есть. На код:
Ruby
1
2
3
4
5
6
7
8
9
10
11
12
13
14
post '/create' do
 
    user = User.find_or_create_by(name: params[:name]) do |user|
      user.name  = params[:name]
      user.email = params[:email]
      user.password = params[:password]
      user.password_confirmation = params[:password_confirmation]
      p '--------------------------------------------------------------'
      p  params[:avatar]
      user.avatar = params[:avatar]
      p '--------------------------------------------------------------'
      p  user.avatar
 
    end
Такие логи:
Bash
1
2
3
4
5
6
7
D, [2016-02-20T11:41:50.556463 #4713] DEBUG -- :   User Load (0.4ms)  SELECT  "users".* FROM "users" WHERE "users"."name" = ? LIMIT 1  [["name", "ewrgfb"]]
"--------------------------------------------------------------"
"Выделение_001.png"
"--------------------------------------------------------------"
#<AvatarUploader:0x007f0a126d4e58 @model=#<User id: nil, name: "ewrgfb", email: "sdfgfds@mail.ru", created_at: nil, updated_at: nil, password_digest: "$2a$10$6.gaU8kmORkJgS.5I/2bw.8QLZ6py20hEilCJN3tig6...", remember_token: nil, admin: false, avatar: nil>, @mounted_as=:avatar>
D, [2016-02-20T11:41:50.667478 #4713] DEBUG -- :    (0.2ms)  begin transaction
D, [2016-02-20T11:41:50.673463 #4713] DEBUG -- :   SQL (0.5ms)  INSERT INTO "users" ("name", "email", "password_digest", "avatar", "created_at", "updated_at", "remember_token") VALUES (?, ?, ?, ?, ?, ?, ?)  [["name", "ewrgfb"], ["email", "sdfgfds@mail.ru"], ["password_digest", "$2a$10$6.gaU8kmORkJgS.5I/2bw.8QLZ6py20hEilCJN3tig6z.AvDi137K"], ["avatar", nil], ["created_at", "2016-02-20 05:41:50.671541"], ["updated_at", "2016-02-20 05:41:50.671541"], ["remember_token", "21833acbd47bcf640a2cfb9e031872ca35cda17a"]]
0
the hardway first
Эксперт JS
 Аватар для j2FunOnly
2475 / 1847 / 910
Регистрация: 05.06.2015
Сообщений: 3,610
20.02.2016, 10:46
Я понимаю, глупый вопрос, но вдруг...
В форме есть аттрибут enctype="multipart/form-data"?
1
20 / 20 / 4
Регистрация: 31.10.2010
Сообщений: 1,240
Записей в блоге: 2
20.02.2016, 10:49  [ТС]
j2FunOnly, прописал
0
20 / 20 / 4
Регистрация: 31.10.2010
Сообщений: 1,240
Записей в блоге: 2
20.02.2016, 11:19  [ТС]
Вот
Миниатюры
Carrierwave: Не сохраняются файлы в uploads  
0
20 / 20 / 4
Регистрация: 31.10.2010
Сообщений: 1,240
Записей в блоге: 2
20.02.2016, 11:32  [ТС]
Попробовал paperclip. Сделал все по докам, выпадает такая ошибка:
Миниатюры
Carrierwave: Не сохраняются файлы в uploads  
0
20 / 20 / 4
Регистрация: 31.10.2010
Сообщений: 1,240
Записей в блоге: 2
20.02.2016, 11:33  [ТС]
Может несовместимость версий Ruby и этих гемов, тогда какие версии с какими работают?
0
the hardway first
Эксперт JS
 Аватар для j2FunOnly
2475 / 1847 / 910
Регистрация: 05.06.2015
Сообщений: 3,610
20.02.2016, 14:48
Только что проверил.
Bash
1
2
3
4
5
6
7
8
9
10
11
12
~/sinatra/bookmarks$ ruby -v
ruby 2.3.0p0 (2015-12-25 revision 53290) [i686-linux]
~/sinatra/bookmarks$ gem list sinatra carrierwave
 
*** LOCAL GEMS ***
 
sinatra (1.4.7)
sinatra-activerecord (2.0.9)
 
*** LOCAL GEMS ***
 
carrierwave (0.10.0)
У меня работает

Добавлено через 21 минуту
ах да, вот хм.. код так сказать:
image_uploader.rb
Ruby
1
2
3
class ImageUploader < CarrierWave::Uploader::Base
  storage :file
end
bookmark.rb
Ruby
1
2
3
4
5
require_relative 'image_uploader'
 
class Bookmark < ActiveRecord::Base
  mount_uploader :image, ImageUploader
end
app.rb
Ruby
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
require 'sinatra'
require 'sinatra/activerecord'
require 'carrierwave'
require 'carrierwave/orm/activerecord'
 
set :database, {adapter: 'sqlite3', database: 'development.sqlite3'}
 
require_relative 'bookmark'
 
class Hash
  def slice(*whitelist)
    whitelist.inject({}) { |result, key| result.merge(key => self[key]) }
  end
end
 
get '/bookmarks' do
  content_type :json
  Bookmark.all.to_json
end
 
post '/bookmarks' do
  input = params.slice 'url', 'title', 'image'
  bookmark = Bookmark.create input
  [201, "/bookmarks/#{bookmark['id']}"]
end
 
get '/bookmark/:id' do
  bookmark = Bookmark.find(params[:id])
  content_type :json
  bookmark.to_json
end
 
get '/' do
  erb :index
end
views/index.erb
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Hello</title>
  </head>
  <body>
    <form action="/bookmarks" method="post" enctype="multipart/form-data">
      <input type="text" name="url" value="" placeholder="url">
      <input type="text" name="title" value="" placeholder="title">
      <input type="file" name="image" value="">
      <input type="submit" >
    </form>
  </body>
</html>
app_spec.rb
Ruby
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
require 'rspec'
require 'rack/test'
require_relative 'app'
 
RSpec.describe 'Bookmarks application' do
  include Rack::Test::Methods
  def app
    Sinatra::Application
  end
 
  it 'creates new bookmark' do
    get '/bookmarks'
    bookmarks = JSON.parse(last_response.body)
    last_size = bookmarks.size
 
    image = Rack::Test::UploadedFile.new(File.open('/home/j2funonly/Pictures/sinatra_logo.png'))
    post '/bookmarks', {url: 'http://www,test.com', title: 'test', image: image}
 
    expect(last_response.status).to eq 201
    expect(last_response.body).to match(/\/bookmarks\/\d+/)
 
    get '/bookmarks'
    bookmarks = JSON.parse(last_response.body)
    expect(bookmarks.size).to eq(last_size + 1)
 
    bookmark = Bookmark.first
    expect(bookmark.image?).to be_truthy
    expect(bookmark.image.url).to eq '/uploads/sinatra_logo.png'
 
    get '/uploads/sinatra_logo.png'
    expect(last_response.status).to eq 200
 
    get '/uploads/no_such_file.png'
    expect(last_response.status).to eq 404
  end
end
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.02.2016, 14:48
Помогаю со студенческими работами здесь

На флешке не сохраняются файлы
купил недавно флешку, закидываю документы ворд, файлы в папке на эту флешку, потом с другого компа открываю эту флешку, а там документы и...

Не сохраняются файлы Word
Маю вот такую проблему. Несколько дней назад установил какую то левою програму, из за чего комп стал плохо работать (реклама, автоматичиски...

Не сохраняются файлы в ubuntu, virtual box
установил ubuntu-13.04-desktop-i386 на virtual box. запустилась нормально, все опции работают, но когда завершаешь работу и запускаешь...

Не сохраняются и неправильно отображаются html-файлы
Несколько дней назад я столкнулся с такой проблемой: перестали сохраняться файлы в формате html/htm. Я вначале подумал про браузер (у меня...

Загрузки через FTP: куда сохраняются файлы?
Здравствуйте у меня возникла проблема, у меня их была куча, сейчас не могу разобратся куда сохраняются файлы с скачивание с FTP Вот код FTP...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru