使用回形针导轨仅获取第一张图像

时间:2013-09-25 13:17:58

标签: ruby-on-rails ruby-on-rails-3

这是我的post_controller.rb

before_action :seo_url,only: [:show]
  def seo_url
    @post = Post.friendly.find params[:id]
  end

我的帖子模型包含has_many :uploads,上传模型包含belongs_to :post

这是我的view

<% @post.uploads.each do |image| %>
    <div class="image-thumb">
        <%= image_tag image.upload.url(:thumb) %>
    </div>
<% end %>

Thumb工作正常,但我只需要first medium image

我尝试了以下内容来获得媒体第一张图片

<%= image_tag @post.uploads.url(:medium) %>

但它会抛出错误

undefined method `upload' for #<ActiveRecord::Associations::CollectionProxy::ActiveRecord_Associations_CollectionProxy_Upload:0xb33b7f00>

我如何实现它

1 个答案:

答案 0 :(得分:0)

我认为问题出在这个块中:

<% @post.uploads.each do |image| %>
    <div class="image-thumb">
        <%= image_tag image.upload.url(:thumb) %>  #here!
    </div>
<% end %>

您将每个upload称为image - 然后拨打image.upload.url - 这有效地呼叫upload.upload.url

修改

工作代码

<%= image_tag @post.uploads.first.upload.url(:medium) %>