Я пытаюсь использовать Gentle Introduction to CarrierWave -tutorial с помощью веб-рамки Sinatra. Когда я запускаю свое приложение, он начинается просто отлично, и приложение просит меня загрузить файл, и он делает это без каких-либо проблем. Однако при загрузке файла приложение выдает мне «неопределенный метод« join »для # String: 0x3480d50« -error ».Неопределенный метод Ошибка соединения при работе CarrierWave и Sinatra.
Я немного оглянулся в Интернете, и я нашел это issue at github, где говорится, что ошибка может быть связана с несовместимостью между Rack и Sinatra или для установки дублированных версий Sinatra.
Кто-нибудь знает, что происходит?
Мой uploader_app:
require 'carrierwave'
require 'sinatra'
require 'sqlite3'
require 'sequel'
require 'carrierwave/sequel'
DB = Sequel.sqlite
DB.create_table :uploads do
String :file
end
# uploader
class MyUploader < CarrierWave::Uploader::Base
storage :file
end
# model
class Upload < Sequel::Model
mount_uploader :file, MyUploader
end
# sinatra app
get '/' do
@uploads = Upload.all
erb :index
end
post '/' do
upload = Upload.new
upload.file = params[:image]
upload.save
redirect to('/')
end
__END__
@@ index
<!DOCTYPE html>
<html>
<body>
<div>
<form action="/" method="post" enctype="multipart/form-data">
<input type="file" name="image" />
<input type="submit" name="submit" value="Upload" />
</form>
<% @uploads.each do |upload| %>
<img src="<%= upload.file.url %>" />
<% end %>
</div>
</body>
</html>
Не могли бы вы поделиться с нами трассировкой стека? – iain
@iain Sure [link] (https://gist.github.com/ljnissen/6f65363175ceb16cd97d) Это на самом деле дает мне две ошибки: один NoMethodError, как указано выше, и один «TypeError: не может преобразовать нуль в строку». Буду признателен за любую оказанную помощь. – ljnissen
Ты не сойдешь с ума. Я только что установил его и запустил, получил ту же ошибку. Я запускаю Ruby 2.1.2, и я изолировал драгоценные камни, используя bundler, но все еще не удалось. Я посмотрю, что я могу найти. – iain