2015-06-18 2 views
0

Итак, я пытаюсь получить базовый загрузчик, работающий на веб-сайте фотографии.Rails Carrierwave upload not uploading

Я пошел и создал эшафот и получил загрузчик всех настроек. загрузка страницы показывает окно загрузки, и похоже, что я загружаю фотографию, но когда я иду на страницу показа, она выплевывает что-то вроде Image: #<ActionDispatch::Http::UploadedFile:0x007fa03f7389a8> и не показывает изображение.

Я все еще новичок в рельсах, поэтому, возможно, что-то действительно простое, что я не вижу здесь.

Спасибо!

Вот мой загрузчиком называется image_uploader.rb

class ImageUploader < CarrierWave::Uploader::Base 
include CarrierWave::RMagick 
    storage :file 
    def store_dir 
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" 
    end 
    version :thumb do 
    process :resize_to_limit => [200, 200] 
    end 
end 

вот мой show.html.rb

<p id="notice"><%= notice %></p> 

<p> 
    <strong>Title:</strong> 
    <%= @image.title %> 
</p> 

<p> 
    <strong>Description:</strong> 
    <%= @image.description %> 
</p> 

<p> 
    <strong>Tag:</strong> 
    <%= @image.tag %> 
</p> 

<p> 
    <strong>Image:</strong> 
    <%= @image.image %> 
</p> 

<%= link_to 'Edit', edit_image_path(@image) %> | 
<%= link_to 'Back', images_path %> 

и это мой контроллер изображения

class ImagesController < ApplicationController 
    before_action :set_image, only: [:show, :edit, :update, :destroy] 

    # GET /images 
    # GET /images.json 
    def index 
    @images = Image.all 
    end 

    # GET /images/1 
    # GET /images/1.json 
    def show 
    end 

    # GET /images/new 
    def new 
    @image = Image.new 
    end 

    # GET /images/1/edit 
    def edit 
    end 

    # POST /images 
    # POST /images.json 
    def create 
    @image = Image.new(image_params) 

    respond_to do |format| 
     if @image.save 
     format.html { redirect_to @image, notice: 'Image was successfully created.' } 
     format.json { render :show, status: :created, location: @image } 
     else 
     format.html { render :new } 
     format.json { render json: @image.errors, status: :unprocessable_entity } 
     end 
    end 
    end 

    # PATCH/PUT /images/1 
    # PATCH/PUT /images/1.json 
    def update 
    respond_to do |format| 
     if @image.update(image_params) 
     format.html { redirect_to @image, notice: 'Image was successfully updated.' } 
     format.json { render :show, status: :ok, location: @image } 
     else 
     format.html { render :edit } 
     format.json { render json: @image.errors, status: :unprocessable_entity } 
     end 
    end 
    end 

    # DELETE /images/1 
    # DELETE /images/1.json 
    def destroy 
    @image.destroy 
    respond_to do |format| 
     format.html { redirect_to images_url, notice: 'Image was successfully destroyed.' } 
     format.json { head :no_content } 
    end 
    end 

    private 
    # Use callbacks to share common setup or constraints between actions. 
    def set_image 
     @image = Image.find(params[:id]) 
    end 

    # Never trust parameters from the scary internet, only allow the white list through. 
    def image_params 
     params.require(:image).permit(:title, :description, :tag, :image) 
    end 
end 
+0

вам нужно использовать image_tag для отображения изображения <% = IMAGE_TAG @ image.image_url%> –

+0

показать свою модель и форму, а поэтому я могу иметь Посмотрите на это тоже. –

ответ

0

попробуйте изменить show.html.erb:

от:

<p> 
    <strong>Image:</strong> 
    <%= @image.image %> 
</p> 

к:

<p> 
    <strong>Image:</strong> 
    <%= image_tag @image.image %> 
</p> 
+0

Ну, это изменило внешний вид того, что я получаю на странице показа. Теперь он показывает сломанную ссылку на изображение и все еще показывает тот же тип вещи, что и мой первый пост. Однако, когда я захожу в свою папку uploads, там ничего похожего нет, поэтому я не знаю, как это исправить. – djbartos93