0

我正在使用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

它没有显示任何错误。上传部分正在工作,但图像检索不起作用。请帮忙。

4

1 回答 1

1

我的天啊...!!!!

我是最愚蠢的......对不起,伙计们......罗弗......!

我没有把节目放在控制器里。所以只需要在控制器中添加这些行,视图如下:

在控制器中

@images = Image.all

在视图中

<% @images.each do |img| %>
  <%= image_tag(img.image.url (:thumb))
<% end %>

谢谢

于 2012-12-07T20:57:09.003 回答