我创建了一个rails应用程序,允许某人通过添加标题,描述和几张图片来创建相册。但是,我只能在网上找到需要两个控制器的方式,一个用于创建相册,另一个用于附加图像。
我现在已经习惯了Rails,尽管我知道我还有很多东西需要学习。
到目前为止,我设法允许用户创建只允许他上传的内容,只上传一张照片。
所以我更改了文件上传的表单部分,现在,它没有保存任何内容......
以下是我的文件:
_form.html.erb
<%= form_for @pet, html: { multipart: true } do |f| %>
<% if @pet.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@pet.errors.count, "error") %> prohibited this album from being saved:</h2>
<ul>
<% @pet.errors.full_messages.each do |message| %>
<li><%= message %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= f.label :name %><br>
<%= f.text_field :name %>
</div>
<div class="field">
<%= f.label :description %><br>
<%= f.text_area :description %>
</div>
<div class="field">
<%= f.label :image %><br>
# added :multiple => true
<%= f.file_field :image, :multiple => true %>
<% if f.object.image? %>
<%= image_tag f.object.image.thumb.url %>
<%= f.label :remove_image %>
<%= f.check_box :remove_image %>
<% end %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
pets_controller.rb
class PetsController < ApplicationController
before_action :set_pet, only: [:show, :edit, :update, :destroy]
# GET /pets
def index
@pets = Pet.all
end
# GET /pets/1
def show
end
# GET /pets/new
def new
@pet = Pet.new
end
# GET /pets/1/edit
def edit
end
# POST /pets
def create
@pet = Pet.new(pet_params)
if @pet.save
redirect_to @pet, notice: 'Album was successfully created.'
else
render :new
end
end
# PATCH/PUT /pets/1
def update
if @pet.update(pet_params)
redirect_to @pet, notice: 'Album was successfully updated.'
else
render :edit
end
end
# DELETE /pets/1
def destroy
@pet.destroy
redirect_to pets_url, notice: 'Album was successfully destroyed.'
end
private
# Use callbacks to share common setup or constraints between actions.
def set_pet
@pet = Pet.find(params[:id])
end
# Only allow a trusted parameter "white list" through.
def pet_params
params.require(:pet).permit(:name, :description, :image)
end
end
所以我总结的问题如下:是否有一种简单的方法可以让我的表单在数组中保存多个图像,以便显示它们?
提前谢谢