0

我有一个名为广告客户的模型,它有 5 个用于图片上传的 url

这里的模型

  attr_accessible :link, :publishoff, :publishon, :title, :adone, :adtwo, :adthree, :adfour, :adfive
  has_attached_file :adone, :styles => {
        :small => "150x150>",
        :medium => "300x300>",
        :thumb => "100x100>"
    },
    :url  => "/assets/advertiser/adone/:id/:style/:basename.:extension",
    :path => ":rails_root/public/assets/advertiser/adone/:id/:style/:basename.:extension"

其中adone adtwo是我的图片上传等等,都是一样的上传思路。

现在视图看起来像这样

8: <% unless @advertisments.nil? %>
9: <%= link_to image_tag(@advertisments.adone.url(:small), :title =>"#{@advertisments.title}"), @advertisments.link, :target => "_blank" %>
10: <% end %>

这里是我的控制器 application_controller

@advertisments = Advertiser.where("publishon <= ? AND publishoff >= ?", Date.today, Date.today).limit(1)

我得到的错误如下

undefined method `adone' for #<ActiveRecord::Relation:
4

1 回答 1

1

您的控制器方法正在返回一个ActiveRecord::Relation集合......您想要的对象在其中。

添加.first到这一行的末尾,如下所示:

@advertisments = Advertiser.where("publishon <= ? AND publishoff >= ?", Date.today, Date.today).limit(1).first

这将返回Advertiser集合中唯一的并将其分配给@advertisements.

于 2013-04-11T02:42:35.660 回答