2011-10-24 10 views
2

ギャラリーモデルとImagesモデルでアプリケーションを開発しています。各モデルには画像があり、それぞれの画像はhas_and_belong_to_manyです。ActiveAdmin:別のフォーム内にIFRAMEとしてフォームを表示

私は現在、ギャラリーの作成/編集用のフォームを開発中です。このフォームから、既存の画像を追加したり、新しい画像をギャラリーにアップロードしたりできるようにしたいと思います。多くのことを心配してから、Railsの "ネストされたモデルフォーム"機能を使用してこれを実現できましたが、最終的な結果はUIの観点からは不満でした。

私が実際に必要とするのは、イメージフォームを含むギャラリーフォームのIFRAMEです。フォームと一緒にレンダリングされる周囲のマークアップ(ヘッダー、タイトルバー、フッターなど)がなくても、イメージフォームをIFRAMEとして含めるにはどうすればよいですか。以下のコードでは、 "new_iframe"コントローラメソッドで "render"を呼び出すと、すでに ":layout => false"を使用しています。ここで

は私のイメージのリソースファイルです:モデルファイル内

ActiveAdmin.register Image do 

    controller.authorize_resource 

    scope_to :current_admin_user 

    collection_action :new_iframe, :method => :get do 
    @image = Image.new  
    render :action => :new, :layout => false 
    end 

    controller do 
    ... 
    end 

    index do 
    column :title do |image| 
     link_to image.title, edit_admin_image_path(image) 
    end 
    column :image do |image| 
     image_tag(image.thumb_path, :alt => "") 
    end 
    column :created_at 
    column :updated_at 
    default_actions 
    end 

    form :html => { :enctype => "multipart/form-data" } do |a| 
    a.inputs "Image", :multipart => true do 
     a.input :title 
     a.input :asset, :as => :file 
    end  
    a.buttons 
    end 

end 
+0

私は次のようになります*フォームが提出されたときに埋め込まれたIFRAME文書のフォームフィールドがパラメータに含まれていた場合は非常に驚きました。これは非常に単純なHTMLフォームフィールドで動作することをテストしましたか? –

+0

Jon、アイデアは、IFRAMEには独自の送信ボタンが付いた独自のフォームがあり、周囲のフォームから独立して送信できるという考えがあります。内側のフォームフィールドが周囲のフォームと共に提出されないことは間違いありません。 –

答えて

0

(メディアは、あなたのギャラリーのモデルです)

accepts_nested_attributes_for :media, 
:reject_if => lambda { |a| a[:image].blank? }, 
:allow_destroy => true 
、アクティブな管理における

f.inputs "Media" do 
    f.has_many :media do |j| 
    j.inputs "media" do 
     if !j.object.nil? 
     j.input :_destroy, :as => :boolean, :label => "Destroy?" 
     end 
     j.input :image, :hint => f.template.image_tag(j.object.image.thumb.url(), :width => '100') 

    end 
    end 
end 
関連する問題