[英]Rails ActiveAdmin register, wrapping another resource
我有2個activeadmin資源,都是使用STI的模型的子類。 例如:
base_model.rb
class BaseModel < ActiveRecord::Base
end
male_model.rb
class MaleModel < BaseModel
end
female_model.rb
class FemaleModel < BaseModel
end
管理員/male_model.rb
ActiveAdmin.register MaleModel do
menu :parent => "Models", :label => "Male Model"
# A big long custom form follows...
form do |f|
f.inputs
f.buttons
end
end
管理員/female_model.rb
ActiveAdmin.register FemaleModel do
menu :parent => "Models", :label => "Female Model"
# The SAME big long custom form follows...
form do |f|
f.inputs
f.buttons
end
end
呈現相同表單但創建不同子類(MaleModel或FemaleModel)的記錄的正確方法是什么?
我現在正在做的是維護2個activeadmin資源,並且其中的代碼幾乎完全相同(龐大)。 完全未干燥。 請分享您在這種情況下所做的事情。
約翰
我沒有嘗試過,但是您可以在控制器中定義一個@object
變量:
controller do
before_filter :set_object, :only => [:new, :edit]
....
def set_object
@object = MaleModel.find(params[:id]) rescue MaleModel.new
end
end
然后你可以呈現一個表格,並使用可變@object
代替@male_model
或@female_model
。
form :partial => "models/form"
# app/views/models/_form.html.erb
<%= semantic_form_for [:admin, @object] do |f| %>
<%= f.inputs %>
<%= f.actions %>
<% end %>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.