RAILS:-destroy只删除记录(不删除)

时间:2016-05-21 23:35:52

标签: ruby-on-rails ruby paperclip ruby-on-rails-5

bicycle.rb

  has_many :pictures, as: :imageable
  accepts_nested_attributes_for :pictures, allow_destroy: true, :reject_if => proc { |obj| obj.blank? }

picture.rb

  belongs_to :imageable, polymorphic: true
  has_attached_file :image
  validates_attachment_content_type :image, :content_type => ["image/jpg", "image/jpeg", "image/png"]

修改视图

<% @bicycle.pictures.each do |pic| %>
              <%= bicycle_form.fields_for :pictures, pic do |frm| %>
              <div class="col-lg-2">
                  <%= image_tag pic.image.url, class: 'edit-image-thumb'%>
                  Delete: <%= frm.check_box :_destroy %>
              </div>
              <% end %>
            <% end %>

图片属性_destroy已列入白名单:

pictures_attributes: [:id, :image, :_destroy]

问题:

据我所知,_destroy复选框必须删除数据库中的整个记录​​(图片记录),但它只是删除了image_file_name image_content_type image_file_size列值,但记录仍然存在。

解释

我有自行车 has many pirctures 。因此,当我创造新的自行车时,我可以附上许多照片。如果我想删除它们,我将edit查看并选中要删除的图片的复选框。但是图片记录并没有从数据库中删除,只是清除了image_file_name image_content_type image_file_size列,只留下了空白但列(在同一记录中)imageable_type和{{1仍然有价值观。所以图像显示(它仍然是最远的)但是像缺失一样(记录存在但图像名称的字段为零)

0 个答案:

没有答案