2013-08-30 25 views
4

我在香蕉模型和圖像模型之間有一對多關聯。有多個圖像的嵌套回形針形式

此外,每個香蕉和圖像屬於一個用戶(通過一個單獨的關聯,因爲圖像和它的香蕉可能有不同的用戶)。

我想要一個嵌套的窗體來創建香蕉以及圖像。踢球者是我不知道要構建多少圖片(注意多個屬性)。以下表單的註釋掉位將創建適量的圖像,但不會完成關聯的用戶參考。 有沒有辦法做到這一點與fields_for(所以協會完成),因爲我試圖?

香蕉MODEL

class Banana < ActiveRecord::Base 
    belongs_to :user 
    validates_presence_of :user 

    has_many :images, dependent: :destroy 
    accepts_nested_attributes_for :images 
    validates_associated :images 
end 

圖像模型

class Image < ActiveRecord::Base 
    belongs_to :user 
    validates_presence_of :user 

    belongs_to :banana 
    validates_presence_of :banana 

    has_attached_file :img 
end 

FORM

<%= form_for @banana, :validate => true, :html => { :multipart => true } do |f| %> 
<!-- <input type="file" name="banana[images_attributes][][img]" multiple />--> 
    <%= f.fields_for 'images_attributes[]', @banana.images do |builder| %> 
     <%= builder.file_field :img, multiple: true %> 
    <% end %> 
<% end %> 

控制器

class BananasController < ApplicationController 
    def create 
    @banana = current_user.bananas.build(banana_params) 
    render :new unless @banana.save 
    end 

    def new 
    @banana = Banana.new 
    end 

    private 

    def banana_params 
    params.required(:banana).permit(images_attributes: [:img]) 
    end 
end 

回答