में कई से अधिक संबंधों को संपादित करना मैं एक लेख से संबंधित कीवर्ड संपादित/जोड़ने के लिए एक तरीका ढूंढ रहा हूं, Activeadmin में इनलाइन।Activeadmin
मैं परिभाषित किया है एक सरल कई-से-अनेक स्थापना:
class Area < ActiveRecord::Base
has_many :area_keywords
has_many :keywords, :through => :area_keywords
accepts_nested_attributes_for :keywords, :reject_if => :all_blank, :allow_destroy => true
end
class AreaKeyword < ActiveRecord::Base
belongs_to :area
belongs_to :keyword
end
class Keyword < ActiveRecord::Base
has_many :area_keywords
has_many :areas, :through => :area_keywords
end
मैं एन क्षेत्र के रूप में जोड़ने के लिए और, कीवर्ड को संपादित करना चाहते हैं तो Aciveadmin में मैं सेटअप इस:
ActiveAdmin.register Area do
form do |f|
f.inputs "Area details" do
f.input :title
f.input :description
end
f.has_many :keywords do |k|
if k.object.nil?
k.input :word, :label => 'Keyword'
else
k.input :word, :label => k.object.word
k.input :_destroy, :as => :boolean, :label => "delete"
end
end
end
end
यह अपेक्षा के अनुसार काम करता है।
लेकिन यदि मैं एक ही कीवर्ड को दो अलग-अलग क्षेत्रों में जोड़ता हूं, तो कीवर्ड को दो बार बनाया जाएगा।
कोई नया कीवर्ड (क्षेत्र के रूप में) दर्ज करते समय, मैं इसे मौजूदा कीवर्ड से स्वचालित रूप से एक संबंध बनाना चाहता हूं, या यदि कोई अस्तित्व नहीं है, तो नया कीवर्ड बनाएं। इसके बारे में जाने का सबसे अच्छा तरीका क्या होगा?
बहुत अच्छा समाधान।साझा करने के लिए धन्यवाद! मैंने इस प्रश्न को पोस्ट करने के बाद दोनों रत्नों का उपयोग किया है, लेकिन इस तरह उन्हें एक साथ उपयोग करने के लिए अच्छी समझ है। –
अच्छा समाधान लेकिन मैं चाहता हूं कि कुछ डिफ़ॉल्ट विकल्प चुने जाएं। चलिए अद्यतन के दौरान कहते हैं कि मैं चाहता हूं कि मेरे वर्तमान बच्चों को डिफ़ॉल्ट रूप से चुना जाना चाहिए। मैं इसे चयन 2 के साथ कैसे कर सकता हूं। –
मैंने इसे किया है: चयनित => आईडीएस –