0

我正在使用 Paperclip 处理将照片上传到我的应用程序,但在检索它们时遇到了一些问题

我可以成功添加/删除/显示所有图像,但是如何仅检索模型的一张照片?比如第一个?

要全部检索它们,我正在使用:

<%= form_for @hotel, :html => {:multipart => true} do |f| %>
  <%= f.fields_for :hphotos do |hp|%>
     <%= image_tag(hp.object.hphoto.url(:medium))%>
  <%end%>
<%end%>

效果很好,但在我的索引中,我只想为每个显示的酒店显示一张照片。我越来越 :

undefined method `Hphotos'
I also ran across: undefined method `url' when testing

我怀疑问题出在我的控制器中,但我不确定是什么,就在这里(我也在进行创建操作,效果很好)

 def index

   @hotels= Hotel.search(params)
   @hotels= <pagination>
#I think the issue is here
   @hotels.Hphotos.build #changing to @hotels.Hphoto.build or @hotels.hphotos.build won't work and I think my issue is here.
    respond_to do |format|
      format.html 
      format.json { render :json => @hotels }
    end
  end

这工作正常:

def new
    @hotel = Hotel.new
    2.times { @hotel.hphotos.build }
end

我在我的索引视图上这样做:

<% @hotels.each do |hotel|%>
(...)
<%= image_tag hotel.hphoto.url(:small) %>
(...)
<%end%>

就像我说的,我只想检索第一张图片,但即使在索引中我也无法全部获取,所以我认为问题出在控制器上。

感谢阅读,欢迎任何提示,我有点卡住了:)

问候

4

1 回答 1

1

在您的索引视图中,您调用的是hotel.hphoto,但它应该是 hphotos,因为它是一对多的关系。如果你想要第一个,你应该这样做:

hotel.hphotos.first.url(:small)
于 2012-05-17T15:54:08.807 回答