2013-06-19 8 views
8

मेरे पास 2 मॉडल हैं। श्रेणी और पोस्ट। वे has_many_and_belongs_to_many रिश्ते का उपयोग कर जुड़े हुए हैं। मैंने रेल कंसोल में जांच की और रिश्ते काम करता है।ActiveAdmin सहेज नहीं पाएगा और कई फ़ील्ड

मैं इस फार्म क्षेत्र का उपयोग कर पोस्ट श्रेणियों सेट करने के लिए activeadmin में चेक बॉक्स बनाया: जब मैं इसे बचाने की कोशिश

f.input :categories, as: :check_boxes, collection: Category.all 

समस्या है, क्योंकि हर दूसरे क्षेत्र डेटा (शीर्षक, शरीर, मेटा infos आदि) बचाया गया है, लेकिन श्रेणी तब भी रहती है जब भी मैंने इसे अनचेक किया हो, या किसी और को भी चेक किया हो।

मैं इस तरह मजबूत मापदंडों का उपयोग कर रहा:

post_params = params.require(:post).permit(:title,:body,:meta_keywords,:meta_description,:excerpt,:image,:categories) 

मुझे कुछ सुझाव दे कृपया सक्रिय व्यवस्थापक भी श्रेणियों को बचाने बनाने के लिए!

शुभकामनाएं, मैट

उत्तर

9

ए.ए. में इस प्रयास करें:

controller do 
     def permitted_params 
     params.permit post: [:title, :body, :meta_keywords, :meta_description, :excerpt, :image, category_ids: []] 
     end 
    end 
4
इस तरह

रखो कुछ /app/admin/post.rb में:

ActiveAdmin.register Post do 
    permit_params :title, :body, :meta_keywords, :meta_description, :excerpt, :image, category_ids: [:id] 
end 

आप उपयोग कर रहे हैं accepts_nested_attributes_for तो यह इस तरह दिखेगा:

ActiveAdmin.register Post do 
    permit_params :title, :body, :meta_keywords, :meta_description, :excerpt, :image, categories_attributes: [:id] 
end 
0

मैं परीक्षण किया है, इस पराक्रम और साथ ही आपको और अन्य लोगों के लिए काम करता

# This is to show you the form field section 
form do |f| 
    f.inputs "Basic Information" do 
     f.input :categories, :multiple => true, as: :check_boxes, :collection => Category.all 
    end 
    f.actions 
end 

# This is the place to write the controller and you don't need to add any path in routes.rb 
controller do 
    def update 
     post = Post.find(params[:id]) 
     post.categories.delete_all 
     categories = params[:post][:category_ids] 
     categories.shift 
     categories.each do |category_id| 
      post.categories << Category.find(category_id.to_i) 
     end 
     redirect_to resource_path(post) 
    end 
end 

आप मजबूत पैरामीटर उपयोग कर रहे हैं और साथ ही विशेषताओं की अनुमति के लिए (ऊपर zarazan जवाब देखें: डी) याद रखें

http://rails.hasbrains.org/questions/369

से लिया गया संदर्भ
संबंधित मुद्दे