这是我的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>
我如何实现它
答案 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) %>