2013-03-21 2 views
2

Я реализую множественную загрузку фотографий для модели и поэтому я использую скрепку и nested_form камнейНедопустимая ассоциация. Убедитесь, что accepts_nested_attributes_for используется для: фото ассоциации

Свойство имеет много фотографий.

Это модель собственности.

class Property < ActiveRecord::Base 
    attr_accessible :photos_attributes, :type, :price, :address, :desc, :category_id, :location_id, :user_id 
    TYPE = { 
    rent: "rent", 
    sale: "sale" 
    } 

    has_many :photos, dependent: :destroy 
    belongs_to :category 
    belongs_to :location 
    belongs_to :user 
    accepts_nested_attributes_for :photos, reject_if: lambda { |t| t[:photo].nil? }, allow_destroy: true 
    acts_as_taggable 
end 

Это фото модель

class Photo < ActiveRecord::Base 
    attr_accessible :property_id 
    belongs_to :property, dependent: :destroy 

    has_attached_file :photo, styles: {small: "100x100>", medium: "300x300>"}, 
        url: "/assets/products/:id/:style/:basename.:extension", 
        path: ":rails_root/public/assets/photos/:id/:style/:basename.:extension" 

    validates_attachment_size :photo, less_than: 5.megabytes 
    validates_attachment_content_type :photo, content_type: ["image/jpeg", "image/png", "image/x-png", "image/pjpeg"] 
end 

И мой тонкий взгляд

= nested_form_for @property, html: {multipart: true} do |f| 
    = f.fields_for :photos do |photos_f| 
    = photos_f.label :photo 
    .file-field-wrap 
     .file-field 
     = photos_f.file_field :photo 
     = photos_f.link_to_remove "Remove" 
     = photos_f.link_to_add "Add", :photos # this line gives error 

Ошибка Invalid association. Make sure that accepts_nested_attributes_for is used for :photos association.

Когда я бегу Property.new.attributes.keys на консоли не показывает :photos_attributes как ключ. Он показывает ["id", "type", "price", "address", "desc", "created_at", "updated_at", "category_id", "location_id", "user_id"]

Я застрял.

ответ

4

Попробуйте изменить линию, которая дает ошибку на следующее:

= f.link_to_add "Add", :photos 
+0

Какая глупая ошибка, которую я сделал. Спасибо чувак!! –

+1

Это не работает для меня, знаете ли вы о другом решении? – Jngai1297

Смежные вопросы