ペーパークリップとポリモーフィックな関連付けを行い、ユーザーが1つのアバターと複数の画像を持つことができるようにしたい。
アタッチメントモデル:
class Attachment < ActiveRecord::Base
belongs_to :attachable, :polymorphic => true
end
class Avatar < Attachment
has_attached_file :image, :styles => { :thumb => "150x150>", :view => "260x180>" },
end
class Image < Attachment
has_attached_file :image, :styles => { :thumb => "150x150>", :view => "260x180>" },
end
ユーザーモデル:
has_one :avatar, :as => :attachable, :class_name => 'Attachment', :conditions => {:type => 'avatar'}
accepts_nested_attributes_for :avatar
ユーザーコントローラー:
def edit
@user.build_avatar
end
ユーザービューフォーム:
<%= form_for @user, :html => { :multipart => true } do |f| %>
<%= f.fields_for :avatar do |asset| %>
<% if asset.object.new_record? %>
<%= asset.file_field :image %>
<% end %>
<% end %>
変更を保存しようとすると、エラー=>不明な属性:アバターが表示されます
has_oneアソシエーションの:class_name =>'attachment'を削除すると、エラー=> uninitialized constant User::Avatarが発生します
ブログの投稿にもアバターを添付する必要があるので、関連付けは多形である必要があります(または少なくとも私はそう思います)
私は困惑しており、どんな助けでも大歓迎です。