我正在使用Cloudinary Gem
图像管理。我是 ruby on rails 的新手,所以无法找到我错的地方。图像上传到云服务器已完成,但我无法从服务器检索图像。我把我的视图、控制器和上传器类放在这里。如前所述,我已经安装了载波并将其粘贴在 gem 文件中的 cloudinary gem 之前。
控制器console.rb
class ConsoleController < ApplicationController
layout 'console'
def c_view
@img = Image.new
end
def create
@img = Image.new(params[:img])
if @img.save
redirect_to(:action => 'c_view')
else
render('c_view')
end
end
end
ImageUploader 类
class ImageUploader < CarrierWave::Uploader::Base
include Cloudinary::CarrierWave
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
version :standard do
process :eager => true
process :resize_to_fill => [1200, 800, :north]
end
version :thumb do
eager
resize_to_fit(200, 200)
end
def public_id
return model.photo_file_name
end
end
意见
用于上传
<%= form_for :img, :url => {:action => "create"} do |f| %>
<%= f.label :gallery, "Gallery"%>
<%= f.select :gallery, ["Art", "Bike", "Landscape", "Other", "Portrait"] %>
<%= f.label :photo_file_name, "Title" %>
<%= f.text_field :photo_file_name %>
<%= f.label :camera_model, "Camera" %>
<%= f.text_field :camera_model %>
<%= f.label :lens_used, "Lens" %>
<%= f.text_field :lens_used %>
<%= f.label :shutter_speed, "Shutter Speed" %>
<%= f.text_field :shutter_speed %>
<%= f.label :aperture, "Aperture" %>
<%= f.text_field :aperture %>
<%= f.label :iso, "ISO" %>
<%= f.text_field :iso %>
<%= f.label :description, "Description" %>
<%= f.text_area :description, :rows => 2 %>
<%= f.file_field :image %>
<%= f.submit "Submit", class: "btn btn-success"%>
<% end %>
用于显示
<%= image_tag (@img.image_url :thumb, :width => 200, :height => 200) %>
模型图像
class Image < ActiveRecord::Base
belongs_to :user
attr_accessible :id, :user_id, :name, :camera_model, :lens_used, :shutter_speed, :aperture, :iso, :gallery, :description, :photo_file_name, :photo_file_size, :photo_updated_at, :image, :image_url
mount_uploader :image, ImageUploader
end
它没有显示任何错误。上传部分正在工作,但图像检索不起作用。请帮忙。