3
我知道我不應該在部分圖庫視圖中爲我的圖庫生成新的關聯圖像。但是,我無法想象在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 %>
更新#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照顧這個問題? –
不幸的是我不記得是否有像這樣的錯誤是0.2.2。但它在v0.3中適用於我 –