0
J'ai réussi à mettre en place un téléchargement d'image avec la gemme carrierwave
.rails carrierwave erreur gem
mais lorsque je tente d'ajouter une option en ligne URL comme ceci:
<%= form_for @rating, :html => {:multipart=>true} do |f| %>
<div class="field">
<%= f.file_field :pic_url %>
</div>
<div class="field">
<%= f.label :remote_pic_url_url, 'or image url' %>
<br/>
<%= f.text_field :remote_pic_url_url %>
</div>
<div class="actions">
<%= f.submit 'Upload Picture', :class => 'btn btn-primary' %>
</div>
<% end %>
puis-je obtenir cette erreur:
Can't mass-assign protected attributes:
mon modèle est
class Rating < ActiveRecord::Base
attr_accessible :pic_url, :rating
mount_uploader :pic_url , ImageUploader
end
??, je suis nouveau sur les rails, qu'est-ce que cela signifie? J'étais sous l'impression que remote_ {columnName} _url est la convention pour ajouter un champ d'URL supplémentaire dans 'carrierwave' – WebQube
Lorsque vous utilisez un formulaire pour créer (ou mettre à jour) un objet modèle, Rails ne vous autorisera pas à définir quelque chose qui n'est pas spécifié la liste blanche 'attr_accessible' (sauf si vous utilisez une méthode de liste noire comme' attr_protected'). Cela permet d'empêcher l'accès non autorisé aux attributs qui ne sont pas destinés à être modifiés via l'interface utilisateur. Donc tout champ dans le formulaire pour votre modèle, doit avoir une entrée correspondante dans la liste 'attr_accessible'. Voir [ici] (http://api.rubyonrails.org/classes/ActiveModel/MassAssignmentSecurity/ClassMethods.html) pour plus d'informations à ce sujet. – PinnyM
merci, ça a marché – WebQube