0

私は得る

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

ページに画像を表示しようとしているときにエラーが発生しました。ファイルと will_paginate のアップロードにペーパークリップを使用しています。

これが Admin::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

イメージコントローラーの内容はこちら

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

そして景色

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

ここで何が問題なのですか?

4

2 に答える 2

1

コントローラでは、Admin :: Imageオブジェクトのコレクションを@dataインスタンス変数に割り当てています(ところで、@ imagesと呼ばないのはなぜですか)。ビューでは、コレクション全体で'photo'メソッドを呼び出そうとしています。 'メソッドはAdmin::Imageオブジェクトで使用できます。

于 2012-07-18T15:10:50.660 に答える
0

クトゥルフは正しいです。あなたが見逃しているのは、コレクションを反復処理することです:

<% @data.each do |datum| %>
  <%= image_tag datum.photo.url %>
<% end %>
于 2012-07-18T15:13:08.733 に答える