ステージ
ギャラリー アプリケーションをイメージします。と の 2 つのモデルがHandcraft
ありPhotos
ます。
1 つの手工芸品には多くの写真が含まれている場合があります。たとえば、次のようなモデルがあるとします。
Handcraft(name:string)
Photo(filename:string, description:string, ...)
_form.html.erb
手工芸品には、次のものがあります。
<%= form_for @handcraft, html: {multipart: true} do |f| %>
# ... other model fields
<div class="field">
<%= f.label :photo %><br />
<%= f.file_field :photo %>
</div>
# ... submit button
<% end %>
handcraft.rb
次のようになります。
class Handcraft < ActiveRecord::Base
attr_accessible :photo
has_many :photos
mount_uploader :photo, PhotoUploader
# ...
end
photo_uploader.rb
:
class PhotoUploader < CarrierWave::Uploader::Base
include CarrierWave::RMagick
storage :file
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
version :thumb do
process :resize_to_limit => [100, 100]
end
def extension_white_list
%w(jpg jpeg gif png)
end
end
問題
フォームを送信すると、次のエラーがスローされます。
NoMethodError (undefined method `photo_will_change!' for #<Handcraft:0xb66de424>):
質問
この場合、Carrierwave をどのように使用/設定すればよいですか?