我在Rails(3.1.1)中使用ActiveAdmin(0.4.0)。如何处理ActiveAdmin中的多个嵌套资源?
我找不到一个很好的方法/破解来处理多个嵌套的资源。
Considerer 3个型号为:
class Program < ActiveRecord::Base
has_many :knowledges, :dependent => :destroy
end
class Knowledge < ActiveRecord::Base
belongs_to :program
has_many :steps, :dependent => :destroy
end
class Step < ActiveRecord::Base
belongs_to :knowledge
end
而且ActiveAdmin资源:
ActiveAdmin.register Program do
end
ActiveAdmin.register Knowledge do
belongs_to :program
end
ActiveAdmin.register Step do
belongs_to :knowledge
end
在routes.rb中:
namespace :admin do
resources :programs do
resources :knowledges do
resources :steps
end
end
end
这里的网址,程序的索引,知识和步骤:
http://localhost:3000/admin/programs
http://localhost:3000/admin/programs/1/knowledges
http://localhost:3000/admin/programs/1/knowledges/1/steps
的“知识”管理员,但“步骤”管理员不保持嵌套的情况下没有问题。
例如,当我使用步骤#索引过滤器我重定向到:
http://localhost:3000/admin/knowledges/1/steps?params ...
但它必须是:
http://localhost:3000/admin/programs/1/knowledges/1/steps?params ...当我创建
同样的问题新资源:
http://localhost:3000/admin/knowledges/1/steps/new
相反的:
http://localhost:3000/admin/programs/1/knowledges/1/steps/new
相同的p roblem与面包屑......等等......
我已经在应用/管理/ steps.rb到目前为止已经试过:
ActiveAdmin.register Step do
belongs_to :knowledge
config.clear_action_items!
action_item :only => :index do
link_to('Create Step', new_admin_program_knowledge_step_path(knowledge.program.id, knowledge.id))
end
index do
column :id
column :knowledge
column :title
column "Actions" do |step|
link_to("Voir", admin_program_knowledge_step_path(step.knowledge.program, step.knowledge, step), :class => "member_link show_link") +\
link_to("Editer", edit_admin_program_knowledge_step_path(step.knowledge.program, step.knowledge, step), :class => "edit_knowledge member_link edit_link", :id => "knowledge_#{dom_id(knowledge)}") +\
link_to("Supprimer", admin_program_knowledge_step_path(step.knowledge.program, step.knowledge, step), :class => "member_link delete_link", :method => :delete, :confirm => "Delete?")
end
end
filter :id
filter :title
filter :subtitle
filter :stage_type
filter :order_by
filter :created_at
filter :updated_at
form :partial => "form"
end
而且在应用程序/视图/管理/措施/ _form。 html.erb我必须使用activeadmin formbuilder:
<%= semantic_form_for(resource, :url => admin_program_knowledge_steps_path(resource.knowledge.program, resource.knowledge), :builder => ActiveAdmin::FormBuilder) do |f|
f.inputs "Step" do
f.input :knowledge, :as => :hidden
f.form_buffers.last << f.template.content_tag(:li, f.template.content_tag(:label, "Knowledge")+f.template.content_tag(:p, f.object.knowledge.title))
f.input :title
f.input :order_by
end
f.buttons
end %>
嗯......我被困。
如何处理这个很好?任何线索赞赏...
这似乎并不与导轨3.2.6和active_admin 0.4.4 – 2012-06-30 18:37:29
恶劣的工作.. 。也许问Jose Valim有关用新版AA来处理这个问题的正确方法......并在这里发布解决方案。 Thx – 2012-07-02 09:06:00
它在最新的'Rails 4.1'和'ActiveAdmin 1.0pre'(来自master)中效果很好。谢谢 :)。 – 2014-08-25 22:10:35