में विफल रहा है, मैं अपने रेल मॉडल में से एक में accepts_nested_attributes_for का उपयोग कर रहा हूं, और मैं माता-पिता बनाने के बाद बच्चों को सहेजना चाहता हूं।accepts_nested_attributes_for बच्चे एसोसिएशन सत्यापन
फॉर्म पूरी तरह से काम करता है, लेकिन सत्यापन विफल हो रहा है।
class Project < ActiveRecord::Base
has_many :tasks
accepts_nested_attributes_for :tasks
end
class Task < ActiveRecord::Base
belongs_to :project
validates_presence_of :project_id
validates_associated :project
end
और मैं चला रहा हूँ: के लिए सादगी की खातिर निम्नलिखित कल्पना
Project.create!(
:name => 'Something',
:task_attributes => [ { :name => '123' }, { :name => '456' } ]
)
परियोजना मॉडल को सहेजने पर, मान्यता कार्यों पर विफल हो रहा है क्योंकि वे एक PROJECT_ID (के बाद से नहीं है परियोजना को बचाया नहीं गया है)।
यह रेल की तरह लगता है नीचे पैटर्न पीछा कर रहा है:
- मान्य परियोजना
- मान्य कार्य
- सहेजें परियोजना
- सहेजें कार्य
पैटर्न होना चाहिए:
- मान्य परियोजना
- दर्रे पर: परियोजना सहेजें और आगे बढ़ें ...
- मान्य कार्य
- दर्रे पर: कार्य सहेजें
- विफल पर: परियोजना को हटाएँ (शायद रोलबैक?)
तो मेरा प्रश्न नीचे उबलता है: मैं माता-पिता के बाद project_id = (या project =) विधि और सत्यापन (बच्चों) पर सत्यापन चलाने के लिए रेल कैसे प्राप्त कर सकता हूं (प्रोजेक्ट) सहेजा गया है, लेकिन अगर कोई बच्चा (कार्य) अमान्य है तो माता-पिता (प्रोजेक्ट) मॉडल को सहेज नहीं सकता है?
कोई विचार?
यह मेरे लिए काम नहीं किया। Validates_presence_of में: project_id कॉलिंग 'प्रोजेक्ट' शून्य पर वापस आ रहा है जिससे इसे project_id को आजमाया जा सकता है और सत्यापन को विफल कर दिया जा सकता है। मैंने एक और सवाल बनाया क्योंकि मैंने सोचा था कि मुद्दा अलग था लेकिन ऐसा लगता है कि यह वही है http://stackoverflow.com/questions/2102724/rails-nested-attributes-association- validation-failing। –
नीचे उल्टा उलटा समाधान रेल 3.0 और उच्चतर के लिए अधिक सही है। – nertzy