1

私はプロジェクトモデルを持っています:

class Project < ActiveRecord::Base
  attr_accessible :active, :address, :date_begun, :date_ended, :description, :name, :url, :organization_id, :invisible, :zone, :definition, :images, :partners, :external_partners, :partner_ids, :external_partner_ids, :images_attributes 

  has_many    :images, :as => :imageble

  accepts_nested_attributes_for :images

end

画像多態性モデル

class Image < ActiveRecord::Base
  attr_accessible :imageble_id, :imageble_type, :order, :data

  belongs_to :imageble, :polymorphic => true

  has_attached_file :data, 
  :styles => { :mini => "60x60#", :medium => "300x300>", :thumb => "100x100>" }, 
  ...
end

プロジェクト管理者:

class Admin::ProjectsController < ApplicationController
  def edit
    @project = Project.find(params[:id])
    @project.images.build
    @hash_partners = Organization.retrieve_hash(@project.partners.collect{|o| o.id})
    @hash_external_partners = ExternalOrganization.retrieve_hash(@project.external_partners.collect{|eo| eo.id})
  end
end

そして、プロジェクトの形式的なフォーム:

<%= semantic_form_for ([:admin, @project]) do |f| %>
<%= f.inputs do %>
  <%= f.input :name,         :label =>"Nome",    :hint => "Clicca sul nome per cambiare", :placeholder => "nome del progetto" %>

  <%= f.semantic_fields_for :images do |images| %>
     <%= images.inputs :data %>
  <% end %>

  <% @project.images.each do |i| %>
     <%= image_tag i.data(:mini) %>
  <% end  %>

<% end %>
<%= f.actions %>
<% end %>

すべてが機能していますが、プロジェクトに画像を追加すると、フォームはますます多くのファイル入力ボタンをフォームにレンダリングします。

私が望むのは、プロジェクトに新しい画像を追加するためのファイル アップロード ボタンを 1 つだけにすることです。そして、プロジェクト画像のサムネイルのリストがあります。

Rails3 と Formtastic 2.1.1 でこれを達成するにはどうすればよいですか?

4

0 に答える 0