这是我的Post
控制器创建操作:
def create
@user = current_user
@post = @user.posts.create(post_params)
respond_to do |format|
if @post.save
format.html { redirect_to @post, notice: 'Post was successfully created.' }
format.json { render :show, status: :created, location: @post }
else
format.html { render :new }
format.json { render json: @post.errors, status: :unprocessable_entity }
end
end
私人:
def post_params
params.require(:柱).permit( :title,:description,:size,images_attributes [:id,:image,:imageable_id,:imageable_type])
端
端
这是show.html.erb
:
(<%= image_tag @post.images.url %>)
这是Post
型号:
class Post < ActiveRecord::Base
belongs_to :user
has_many :images, as: :imageable
accepts_nested_attributes_for :images
end
这是Image
型号:
class Image < ActiveRecord::Base
belongs_to :imageable, polymorphic: true
mount_uploader :image, ImageUploader
end
答案 0 :(得分:1)
看起来您正在使用Carrierwave并将其安装在Image模型的image
属性上。因此,这样的事情可能会奏效:
<% @post.images.each do |image| %>
<%= image_tag image.image_url(:original) %>
<% end %>
您可以将:original
替换为您的carrierwave上传器文件创建的任何版本
答案 1 :(得分:0)
<%= image_tag @post.images %>
提供的collections of images
属于@post
要渲染帖子的图像,请执行以下操作:
<% @post.images.each do |img| %>
<%= image_tag img.url %>
<% end %>