我使用Cloudinary Gem
来管理图片。我是一个新的bie to ruby on rails,所以无法找到我错在哪里。将图像上载到云服务器已完成,但我无法从服务器检索图像。我把我的观点,控制器和上传者课程放在这里。我已经安装了载波并将其粘贴在gem文件中的cloudinary gem之前。如上所述。
Controller 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
没有显示任何错误。上传部分正在运行,但图像检索无效。 请帮忙。
答案 0 :(得分:1)
哦,天哪... !!!!
我是最愚蠢的..对不起伙计...... Rofl ...... !!
我没有把节目放在控制器中。因此,只需在控制器中添加这些行,视图如下:
在控制器中
@images = Image.all
在视图中
<% @images.each do |img| %>
<%= image_tag(img.image.url (:thumb))
<% end %>
由于