rails 3 полиморфная ассоциация со скрепкой и несколькими моделями

Я хочу создать полиморфные ассоциации со скрепкой и разрешить моему пользователю иметь один аватар и несколько изображений.

Приложение модель:

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 %>

при попытке сохранить изменения я получаю сообщение об ошибке => неизвестный атрибут: аватар

если я удаляю :class_name => 'attachment' в ассоциации has_one, я получаю сообщение об ошибке => неинициализированная константа User::Avatar

Мне нужно также прикреплять аватары к сообщениям в блоге, поэтому мне нужна полиморфная ассоциация (по крайней мере, я так думаю)

Я в тупике, и любая помощь будет принята с благодарностью.

7
задан kaigth 15 May 2012 в 21:08
поделиться