2010-07-02 12 views
1

Je n'arrive pas à obtenir que mon InventoryItem accepte des attributs imbriqués, ce qui est étrange.Attributs inconnus sur un formulaire imbriqué dans Rails

Dans mon script/console, je ne le texte suivant:

>> InventoryItem.create!(:name => 'what', :image_attributes => [ {:image => File.open("/home/davidc/Desktop/letterbx.jpg", "r") }]) 
ActiveRecord::UnknownAttributeError: unknown attribute: image_attributes 

Je ne sais pas pourquoi je reçois l'erreur d'attribut inconnu quand dans mon modèle, je l'ai déjà fait accept_nested_attributes. Je utilise Rails v2.3.5.

Inventaire Item Modèle

class InventoryItem < ActiveRecord::Base 
    uuid_it 

    belongs_to :user 
    has_many :orders 
    has_many :images, :validate => true 
    accepts_nested_attributes_for :images 
end 

image

class Image < ActiveRecord::Base 
    belongs_to :inventory_item 

    has_attached_file :image, :style => { :medium => "300x300>", :thumb => "100x100>" } 
end 

Répondre

0

:image_attributes est censé être un hachage.

InventoryItem.create!(
    :name => 'what', 
    :image_attributes => { ... } 
) 
2

Vous avez has_many :images Ainsi, il devrait être :images_attributes, pas :image_attributes

InventoryItem.create!(:name => 'what', :images_attributes => [ {:image => File.open("/home/davidc/Desktop/letterbx.jpg", "r") }]) 

Et il est correct d'utiliser un tableau de hachages lorsque vous avez has_many relation