Я использую самоцвет Carrierwave, чтобы добавить модуль приложения в мое приложение. Для этого я создал модель беспокойство по имени Attachable
следующим образом:Rails 4 Повторяющиеся записи Carrierwave при обновлении
module Attachable
extend ActiveSupport::Concern
included do
has_many :attachments, as: :attachable, dependent: :destroy
accepts_nested_attributes_for :attachments
end
end
который я звоню в мой пост модели:
class Post < ActiveRecord::Base
include Attachable
end
Когда она отлично работает для сохранения нового сообщения:
def create
@post = current_user.posts.new(post_params)
if @post.save
redirect_to post_path(@post.slug)
else
@categories = Term.get_category
render :new
end
end
это фактически дублируют мои записи (базы данных), когда я обновляю:
def update
@post.clean_taxonomies
if @post.update(post_params)
redirect_to post_path(@post.slug)
else
@categories = Term.get_category
render :edit
end
end
При редактировании он заполняет все заголовок вложения (имя поля: строка в моей таблице), но поскольку он не может повторно заполнить имя файла в input field
, при сохранении изменений он дублирует количество вложений с пустым файлом ,
Как я могу исправить это и загрузить/сохранить вложение только в том случае, если он был определен?
Благодаря
EDIT:
Вот мой взгляд на источник posts/edit.html.haml
(такой же, как new.html.haml):
= form_for @product, url: product_path(@product.slug), html: { multipart: true } do |f|
= f.fields_for :attachments do |attachment|
.row.attachment
.col-sm-6
= attachment.label :name, 'Filename'
= attachment.text_field :name, class: 'form-control'
.col-sm-5.col-xs-9
= attachment.label :file, 'File'
= attachment.file_field :file, class: 'form-control'
.col-sm-1.col-xs-1
%a.remove-attachment{ href: '#' }
%i.icon-remove-circle.icon-2x
ли вы разместить свой вид? Вероятно, проблема очень велика. – Taavo
Привет, спасибо за ваш ответ. Я редактировал свой пост и добавил код просмотра. благодаря – lkartono