Carrierwave Datei löschen
Wieder brauche ich Eure Hilfe. Jetzt muss ich verstehen, wie ich das löschen kann mit Carrierwave hochgeladenen Dateien (in meinem Fall Bilder).
models/attachment.rb :
class Attachment < ActiveRecord::Base
belongs_to :attachable, :polymorphic => true
attr_accessible :file, :file
mount_uploader :file, FileUploader
end
models/post.rb :
class Post < ActiveRecord::Base
attr_accessible :content, :title, :attachments_attributes, :_destroy
has_many :attachments, :as => :attachable
accepts_nested_attributes_for :attachments
end
*views/posts/_form.html-Code.erb :*
<%= nested_form_for @post, :html=>{:multipart => true } do |f| %>
<% if @post.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@post.errors.count, "error") %> prohibited this post from being saved:</h2>
<ul>
<% @post.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<div id="field">
<%= f.label :Nosaukums %>:<br /><br />
<%= f.text_field :title %><br /><br />
</div>
<div id="field">
<%= f.label :Raksts %>:<br /><br />
<%= f.text_area :content %><br /><br />
</div>
<%= f.fields_for :attachments do |attachment| %>
<% if attachment.object.new_record? %>
<%= attachment.file_field :file %>
<% else %>
<%= image_tag(attachment.object.file.url) %>
<%= f.check_box :_destroy %>
<% end %>
<% end %>
<%= f.submit "Publicēt", :id => "button-link" %>
<% end %>
Wenn ich versuche zu löschen, die bisherigen hochgeladenen Datei habe ich diese Fehlermeldung:
unknown attribute: _destroy
Vielleicht ist es ein problem, weil ich mehrere Datei-uploads nicht nur eine.
InformationsquelleAutor RydelHouse | 2013-02-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sind Sie dem Aufruf der Methode auf dem falschen Modell. Ihre Datei mount auf der Anlage.
Der Fehler ist Ihnen zu sagen, was falsch ist.
Der entscheidende Punkt, der Fehler ist der die Methode aufgerufen wird, die auf dem Post-model, wenn es aufgerufen werden muss, die für die Anlage-Modell.
Vielleicht versuchen scoping der Eingang für die checkbox, um das richtige Modell.
InformationsquelleAutor Polygon Pusher
Keines dieser arbeitete für mich, aber nach dem Graben stieß ich auf dieser Beitrag wirklich geholfen hat. Im Grunde...
Form (wo f ist Ihre form der Objekte):
Dann, wenn Sie das Häkchen setzen und das Formular abschicken erhalten Sie die folgende Fehlermeldung:
Ist leicht gelöst, indem man einfach
remove_image
zu Ihremattr_accessible
Liste auf das Modell. Am Ende werde es so Aussehen:In meinem Fall ist es ein Hintergrundbild, das gehört an den Benutzer. Hoffe, das hilft 🙂
InformationsquelleAutor gbdev
Entsprechend der docs, die checkbox aufgerufen werden soll
remove_file
.remove_file
ich habe diesen Fehler:undefined method 'remove_file' for #<Post:0x471a320>
Sie versuchen, rufen Sie die Methode
remove_file
? Laut der docs die Methode aufgerufen wirdremove_file!
(beachte das Ausrufezeichen).Ich habe alles getan, diese Dinge auch, aber es gibt Fehler.
InformationsquelleAutor Jiří Pospíšil
Sollte es sein
<%= Anlage.check_box :_destroy%>
Es funktioniert für mich
InformationsquelleAutor Beena Shetty