2

Rails アプリケーションに画像をアップロードしようとしています。しかし、私はそうすることができません。私はレールに比較的慣れていないので、ここで助けが必要です。

ここに示す「画像」モデルがあります-

 class Picture < ActiveRecord::Base

     attr_accessible :photo, :tag

     has_attached_file :photo, :styles => { :medium => "300x300>",
     :large => "1000x1000>",     :thumb => "100x100>" }

 end

ここに示す「写真」コントローラーがあります-

 class PicturesController < ApplicationController

    def new
            @picture = Picture.new
    end

    def create
            @picture = Picture.create( params[:picture] )
            if @picture.save
                    flash.now[:success] = "Image Uploaded"
                    redirect_to @picture
            else
                    render 'new'
            end
    end

    def index
    end

    def show
            @picture = Picture.find(params[:id])
            send_data @picture.photo, :type => 'image/png', :disposition => 'inline'
    end

    def imageshow
    end

 end

最後に、これらは私の「新しい」ビューと「表示」ビューです。

"new.html.erb"

 <h1>Upload an Image</h1>
 <div>
    <%= form_for(@picture, :html => {:multipart => true}) do |f| %>
       <%= f.file_field :photo %>
       <%= f.label :tag %>
       <%= f.text_field :tag %>
       <%= f.submit "Submit", class: "btn btn-large btn-primary" %>
    <% end %>
 </div>

"show.html.erb"

 <h1>Displaying Uploaded Image</h1>
 <div>
     <%= image_tag @picture.photo.url %>
     <%= image_tag @picture.photo.url(:large) %>
 </div>

Upload ページ (つまり、Pictures Controller の new.html.erb) にアクセスできます。ただし、画像をアップロードすると、次のエラーが発生します。

「この画像 "http://10.102.119.20:3000/pictures/12" はエラーが含まれているため表示できません」

私のクエリは次のとおりです。

  1. 画像はサーバーのどこにアップロードされますか?
  2. 実行する必要がある構成はありますか?
  3. 私のコードに他の問題はありますか?

助けてくれてありがとう..!!

4

1 に答える 1

0

Ryan Batesが Railscasts で Paperclip について説明しています。見てみな。それは私が始めるのを助けました。

于 2012-07-05T23:01:32.067 に答える