Rails 4:嵌套表单上的重复file_field输入

我有一个模型“post”和一个模型“照片”。 模型post具有来自照片的嵌套表单以上传具有关联的图像。 上传工作正常,但每次我去编辑post时,我都会为每个上传的图片添加新的输入,并且还有一个输入来上传新图像。 我想只输入上传新文件并隐藏或不加载其他文件。

这是我的代码:

   

控制器:

 module Admin class SeminovosController  true, 'max-stale' => 0 end # GET /seminovos/1 # GET /seminovos/1.json def show end # GET /seminovos/new def new @seminovo = Seminovo.new @seminovo.photos.build @seminovo.photos end # GET /seminovos/1/edit def edit @seminovo.photos.build @seminovo.photos end # POST /seminovos # POST /seminovos.json def create #@seminovo = Seminovo.new(seminovo_params) respond_to do |format| @seminovo = Seminovo.new(seminovo_params) @seminovo.save format.html { redirect_to @seminovo } format.js # if @seminovo.save # format.html { redirect_to @seminovo, notice: 'Seminovo was successfully created.' } # format.json { render :show, status: :created, location: @seminovo } # else # format.html { render :new } # format.json { render json: @seminovo.errors, status: :unprocessable_entity } # end end end # PATCH/PUT /seminovos/1 # PATCH/PUT /seminovos/1.json def update respond_to do |format| if @seminovo.update(seminovo_params) format.html { redirect_to @seminovo, notice: 'Seminovo was successfully updated.' } format.json { render :show, status: :ok, location: @seminovo } else format.html { render :edit } format.json { render json: @seminovo.errors, status: :unprocessable_entity } end end end # DELETE /seminovos/1 # DELETE /seminovos/1.json def destroy @seminovo.destroy respond_to do |format| format.html { redirect_to seminovos_url, notice: 'Seminovo was successfully destroyed.' } format.json { head :no_content } end end private # Use callbacks to share common setup or constraints between actions. def set_seminovo @seminovo = Seminovo.friendly.find(params[:id]) end # Never trust parameters from the scary internet, only allow the white list through. def seminovo_params params.require(:seminovo).permit(:name, :price, :marca_id, :tipo_id, :ano_modelo, :portas, :km_rodados, :combustivel, :placa, :cor, :desc, :video, :destaque, :photo_id, :slug, photos_attributes: [ :id, :image, :image_uid, :image_name, :desc, :seminovos_id, :_destroy ]) end end end 

删除@seminovo.photos.build @seminovo.photos

来自新的和编辑动作。

然后更换

 <%= f.fields_for :photos do |photo| %> <%= photo.file_field :image, class: "form-control" %> <% end %> 

 <%= f.fields_for :photos, @seminovo.photos.new do |photo| %> <%= photo.file_field :image, class: "form-control" %> <% end %>