1.rails g uploader avatar
1 | 将 include carrierwave::minimagick 前面的#去掉 |
2.建立photo.rb model文件:
$ rails g model xxx xxxx:xxx avatar:string
自然建立migration文件
3.在需要添加图片的model文件中加上
1 | has_many :photos |
1 | mount_uploader :avatar, AvatarUploader |
4.在需要添加图片的controller文件中加上
def new下面加
@photo = @xxx.photos.build
def create中if @xxx.save下面加
1 | if params[:photos] != nil |
def show 下面加
1 | @photos = @xxx.photos.all |
def update
if params[:photos] != nil
@case.photos.destroy_all #将原来的图片删掉
[:photos][‘avatar’].each do |a|
@photo = @case.photos.create(:avatar => a)
end
@case.update(case_params)
redirect_to cases_path
elsif
@case.update(case_params)
redirect_to cases_path
else
render :edit
end
end
1 |
|
<%= f.label :avatar %>
<%= f.file_field :avatar, :multiple => true,name:”photos[avatar][]” %>
1 | 在show页面添加 |
<% if @photos.present? %>
@xxx.photos.each do |photo| %>
<%= image_tag photo.avatar.url(:thumb) %>
<% end %>
<% else %>
暂无图片
<% end %>
%>%>%>%=>%>
```
ps:一个xxx对应多个photo
一个photo对应一个avatar
这种时候要显示avatar就需要对于@xxx.photos这个数组进行遍历来实现