2012-07-18 7 views
0

paperclip Je reçoisMéthode non trouvée

undefined method `photo' for #<ActiveRecord::Relation:0x00000102a8a7c0> 

erreur pendant que je suis en train d'afficher l'image sur ma page. J'utilise un trombone pour télécharger les fichiers et will_paginate.

Voici le contenu de l'administrateur :: modèle d'image

class Admin::Image < ActiveRecord::Base 
    attr_accessible :added_on, :title, :photo 

    validates_presence_of :title 
    validates_presence_of :photo 

    self.per_page = 15 

    has_attached_file :photo 
end 

Voici le contenu du contrôleur d'image

class ImagesController < ApplicationController 
    def index 
    @data = Admin::Image.paginate(:page => params[:page]) 
    end 
end 

Et la vue

<%= image_tag @data.photo.url %> 

Quel est le problème ici?

Répondre

1

Dans le contrôleur, vous assignez une collection d'objets Admin :: Image à la variable d'instance @data (BTW pourquoi ne pas l'appeler @images), et dans la vue vous essayez d'appeler une méthode 'photo' sur toute la collection , tandis que la méthode 'photo' est disponible dans l'objet Admin :: Image.

0

Cthulhu est juste, ce qui vous manque est itérer sur la collection:

<% @data.each do |datum| %> 
    <%= image_tag datum.photo.url %> 
<% end %> 
Questions connexes