2015-02-25 4 views
2

Привет, я начинаю рубить на рельсах, и я делаю приложение, в котором мы можем загрузить, а затем отобразить изображение пользователя, но изображение не загружается и не отображается. Вот мой код:Изображение не отображается с помощью Paperclip in Rails

Моя страница загрузки код:

<%= form_for @userinfo , :html => { :multipart => true } do |f| %> 
    <%= f.label :name %> 
    <%= f.text_field :name, class: 'form-control' %> 
    <%= f.file_field :photo , class: 'form-control' %> 

    <%= f.submit "Save Details", class: "btn btn-primary" %> 
    <% end %> 

Моя показать кодовая страница:

<%= image_tag @userinfo.photo.url %> 
    <p> 
    <strong>Name:</strong> 
    <%= @userinfo.name %> 
    </p> 

Моя модель код:

class Userinfo < ActiveRecord::Base 
    has_attached_file :photo 
    validates_attachment_presence :photo 
    validates_attachment_size :photo, :less_than => 5.megabytes 
    validates_attachment_content_type :photo, :content_type => ["image/jpg", "image/jpeg", "image/png", "image/gif"] 
    end 

Мой контроллер код:

class UserinfoController < ApplicationController 
    def new 
     @userinfo= Userinfo.new 
    end 
    def create 
     @userinfo = Userinfo.new(user_params)  
     if @userinfo.save 
     flash[:success] = "User created Successfully!!" 
     redirect_to userinfo_path 
     else 
     render 'new' 
     end 
    end 
    def show 
     @userinfo = Userinfo.find(params[:id]) 
    end 

    private 
    def user_params 
     params.require(:userinfo).permit(:name, :father_name, :mother_name, :contact_number, :photo) 
    end 
    end 

Ошибка, полученная из файла журнала: «ActionController :: RoutingError (Нет маршрутов совпадает с [GET]» /photos/original/missing.png »), а на странице просмотра вместо него отображается« отсутствует » отображения изображения. Я начинаю это, так что скажите мне, что я делаю неправильно. Спасибо.

+0

Какая страница erroring? Если это страница показа, то можете ли вы также указать код действия шоу с контроллера? –

+0

нам нужно передать атрибуты 'has_attached_file' в' params.require (: userinfo) .permit' – Sontya

+0

Вы не указали: url и: путь в модели? – dima

ответ

0

Не ответ как таковой, но руководство по отладке.

  • взгляд в журнал, чтобы увидеть, что приходит через к шоу-акции в params[:id]
  • в консоли, загрузите Userinfo с этим идентификатором, как userinfo = Userinfo.find(123)
  • в консоли, сделайте userinfo.photo и userinfo.photo.url - Правильно ли они выглядят?
    • Если они действительно выглядят нормально, проверьте, что файл находится в том месте, на которое они указывают. Пути файлов относятся к вашей общей папке.
    • Если они не выглядят правильно, проблема может заключаться в том, что они фактически не загружены должным образом в первую очередь. Убедитесь, что процесс загрузки работает правильно и правильно настроил ассоциацию изображений с объектом Userinfo.
0

я думаю, что вы бы определили в умолчанию ресурса вложения, такие как

:default_url => "/images/:style/missing.png" 

вы должны удалить его и использовать базовое определение, которое работает 99,99%.

attr_accessible :avatar 
has_attached_file :avatar, 
:url => "/assets/images/users/:id/:style/:basename.:extension", 
##user defined path 
:path => :rails_root/public/assets/images/:id/:style/:basename.:extension", 
:styles => { :medium => "300x300>", :thumb => "100x100>" }, 
##commenting the datault url 
##:default_url => "/images/:style/missing.png" 

EDITED ОТВЕТ: -

So for a model user_info having avatar ..the view part with form_f или

form_for(@user_info,url:your_post_path) do |f| 
## use html instead 
    <input type="file" name="user_info[avatar][]" multiple> 
##or use helper instead 
    <%= f.file_field :avatar %> 
<%end%> 
+0

, когда я это сделал, он дает ошибку «неопределенный метод' attr_accessible »для # < Класс: 0x007f75e8a906e0>». Это потому, что рельсы 4+ версии не поддерживают «attr_accessible». После удаления этой строки, а затем, когда я добавил изображение и отправлю форму, он выдаст ошибку, если не выбран файл. Вот почему я не знаю, пожалуйста, скажите мне. –

+0

Привет @NiteshMishra ... проверьте отредактированный ответ ..... – Milind

Смежные вопросы