2014-10-05 9 views
8

मेरे पास एक विशिष्ट श्रेणी से जुड़े उपश्रेणियों के आधार पर रीफ्रेश करने के लिए उपश्रेणी चयन इनपुट की तरह एक श्रेणी मॉडल और उप-श्रेणी मॉडल और आईडी है। ActiveAdmin श्रेणी मॉडल है कि उप-श्रेणियों (, json में उदाहरण के लिए) रिटर्न में के अंतर्गत आता है (चयनित श्रेणी की आईडी: मिलता है, परम विधि)एक्टिवैडमिन फॉर्म ड्रॉपडाउन अपडेट का चयन करें

form do |f| 
    f.inputs do 
     f.input :title 
     f.input :category, as: :select, collection: Category.all, :input_html => { :class => 'chzn-select', :width => 'auto', "data-placeholder" => 'Click' } 
     f.input :sub_category, as: :select, collection: SubCategory.all, :input_html => { :class => 'chzn-select', :width => 'auto', "data-placeholder" => 'Click' } 
    end 
    f.actions 
end 

उत्तर

0
  1. आप एक सदस्य कार्रवाई बनाने के लिए चयनित श्रेणी:

    https://github.com/activeadmin/activeadmin/blob/master/docs/8-custom-actions.md#member-actions

  2. आप ajax के साथ jQuery (उदाहरण के लिए), कि उपश्रेणी पॉप्युलेट उपयोग करने के लिए इनपुट का चयन करें जब श्रेणी का चयन इनपुट बदल दिया गया है है:

    Populate Select box options on click with Javascript/Jquery with Json data https://forum.jquery.com/topic/best-practices-for-populating-selects-with-ajax

12

आप निर्भर उपयोग कर सकते हैं इस उद्देश्य के लिए का चयन करें। उदाहरण दिया जाता है here

सक्रिय व्यवस्थापक

ActiveAdmin.register CatalogsProduct do 
    form do |f| 
    f.inputs "Details" do 
     f.input :product, :as => :select, :collection => Product.all.collect {|product| [product.name, product.id] } 
     f.input :catalog, :as => :select, :input_html => {'data-option-dependent' => true, 'data-option-url' => '/products/:catalogs_product_product_id/catalogs', 'data-option-observed' => 'catalogs_product_product_id'}, :collection => (resource.product ? resource.product.category.catalogs.collect {|catalog| [catalog.attr_name, catalog.id]} : []) 
    end 
    f.actions 
    end 
end 

सूचि नियंत्रक

class CatalogsController < ApplicationController 
    respond_to :json 

    def index 
    if params[:product_id] 
     product = Product.find_by_id(params[:product_id]) 
     @catalogs = product.category.catalogs 
    else 
     @catalogs = Catalog.all 
    end 
    render :json => @catalogs.collect {|catalog| {:id => catalog.id, :name => catalog.attr_name} } 
    end 
end 
+3

आप आलसी हैं और सिर्फ तार इस कोशिश कर करना चाहते हैं: 'f.input: के रूप में स्थिति,: चयन , संग्रह: (["नया", "चेक_इन", "कहा", "पूर्ण"]) ' – michael

संबंधित मुद्दे