私はギャラリービューの部分的な部分に新しい関連する画像を作成してはいけないと知っています。しかし、ActiveAdminの生成されたコントローラでこれを行うことはできません。コントローラは、リソースファイルの "Controller"メソッドを使用してカスタマイズすることができます。どのように私はビューの部分の代わりにコントローラメソッドを使用してこれを行うことができますか?ActiveAdmin:ビューの代わりにコントローラから新しいアソシエーションを作成する部分
ここに私のギャラリーリソースファイルされる:
ActiveAdmin.register Gallery do
controller.authorize_resource
scope_to :current_admin_user
before_filter :block_access
controller do
def block_access
if params && params['q'] && params['q']['admin_user_id_eq']
params['q']['admin_user_id_eq'] = nil
end
end
end
form :partial => "form"
end
ここでは私のギャラリーでは、部分的なビュー:
<% new_image = @gallery.images.build %>
<%= semantic_form_for [:admin, @gallery] do |g| %>
<%= g.inputs "Details" do %>
<%= g.input :title %>
<%= g.input :images, :as => :check_boxes, :label_method => Proc.new { |image| image_tag(image.thumb_path, :alt => "") + content_tag("h3", image.title) } %>
<% end %>
<%= g.inputs :for => [:images, new_image], :name => "New Image" do |image| %>
<% if image.object.new_record? %>
<%= image.input :title %>
<%= image.input :asset, :as => :file %>
<% end %>
<% end %>
<%= g.buttons %>
<% end %>
UPDATE#1:を "コントローラやる" ブロック(内側に以下のメソッドを追加しますThomas Watsonの提案に基づいて)ギャラリーを作成/編集するために働いた。
def new
@gallery = Gallery.new
@new_image = @gallery.images.build
new!
end
def edit
@gallery = Gallery.find(params[:id])
@new_image = @gallery.images.build
edit!
end
def update
@gallery = Gallery.find(params[:id])
@new_image = @gallery.images.build
update!
end
は、私は、アクティブな管理のレイアウトを失います。アクティブな管理レイアウトを使用するように強制すると、レイアウトは得られますが、上部にナビゲーションは表示されません。基本的にはすべての利点が失われます。私は0.2.2を使用しています。0.3.xにアップグレードするとこの問題が解決されますか? –
残念ながら、このようなバグがあったかどうかは覚えていません。しかしそれはv0.3で私のために働く –