2016-06-08 11 views
0

Ich benutze Büroklammer, um Bilder in eine Rails-Anwendung auf Cloud9 virtuellen Umgebung (Ubuntu) hochladen. Es gibt ein Filmmodell und jedem Filmobjekt ist ein Bild zugeordnet.Rails Büroklammer Bilder nicht in auf Cloud9 Server

class Movie < ActiveRecord::Base 
    belongs_to :user 
    belongs_to :category 
    has_attached_file :movie_img, styles: { medium: "250x350>", thumb: "325x475>" }, default_url: "/images/style/missing.png" 
    validates_attachment_content_type :movie_img, content_type: '/\Aimage\/.*\Z/' 
end 

Der Blick sieht wie folgt aus

<% @movies.each do |movie| %> 
      <%= image_tag movie.movie_img.url(:movie_index), class: "movie" %> 
    <% end %> 

Aber Bilder zeigen nicht auf dem Gelände auf.

Der Weg, um Bilder in der generierten HTML-ähnliche/

System sieht Filme/movie_imgs/000/000/010/movie_index/filename.jpg? 1465401579 Die Bilder sind in dem aktuellen Verzeichnis als Ich kann vom Datei-Explorer von Cloud9 sehen.

Wenn ich diese Bildadresse öffne, zeigt es den folgenden Fehler an.

Keine Route treffer [GET] "/system/movies/movie_imgs/000/000/011/movie_index/fileName.png"

Auch in der config/Umgebungen/development.rb Ich habe geschrieben die folgende Zeile des Codes

weil wenn ich eingeben, die im Terminal konvertieren, das folgende zeigt.

/usr/bin/convert

Wo bin ich falsch gehen? Wie kann ich die Bilder auf dem Server erscheinen lassen?

BEARBEITEN Ich habe auch notwendige Migration generieren und meine Filmtabelle sieht so aus.

create_table "movies", force: :cascade do |t| 
    t.string "title" 
    t.text  "description" 
    t.string "director" 
    t.date  "release_date" 
    t.datetime "created_at",    null: false 
    t.datetime "updated_at",    null: false 
    t.integer "user_id" 
    t.integer "category_id" 
    t.string "movie_img_file_name" 
    t.string "movie_img_content_type" 
    t.integer "movie_img_file_size" 
    t.datetime "movie_img_updated_at" 

Ende

Standbilder bis nicht angezeigt werden.

Antwort

0

Sie scheinen einen View-Helper zu deklarieren, um das Bild (: movie_index), das nicht im Movie-Modell definiert ist, zu skalieren.

Sie benötigen die Helfer und die Größe zu erklären: movie_index am Modell als solche:

class Movie < ActiveRecord::Base 
    belongs_to :user 
    belongs_to :category 
    has_attached_file :movie_img, styles: { movie_index: "300x300>" medium: "250x350>", thumb: "325x475>" }, default_url: "/images/style/missing.png" 
    validates_attachment_content_type :movie_img, content_type: '/\Aimage\/.*\Z/' 
end 

Edit:

Kontrollieren Sie, ob bereits die notwendige Migration generiert:

rails g paperclip Movie movie_img 

Lesen Sie unbedingt die Paperclip documentation.

+0

Ich habe bereits die erforderliche Migration generiert und ich habe mein Schema in den Fragedetails hinzugefügt. Bitte überprüfen Sie es einmal.Die Bilder existieren in diesem Pfad, sie sind jedoch auf der Site nicht sichtbar. –

+0

@YashSharma Hast du "movie_index:" 300x300> "wie ich vorgeschlagen habe? – Alex

+0

Vielen Dank. Das löste das Problem. Vielen Dank !! –