Stackoverflow में जवाब के साथ हाल ही में अच्छे भाग्य की भी नहीं होने (मुझे लगता है मैं tumbleweed पुरस्कार का राजा हूँ) लेकिन यहाँ वैसे भी चला जाता है:रेल अद्यतन केवल रिक्त फ़ील्ड
मैं केवल फ़ील्ड खाली हैं अद्यतन कर सकते हैं कैसे ActiveRecord का उपयोग करते समय? मैं इस कोड है:
master_info.update_attributes({:originalTitle => slave_info.originalTitle,
:starring => slave_info.starring,
:theatrical => slave_info.theatrical }
और की तरह कुछ करना चाहते हैं:
master_info.update_attributes({:originalTitle => slave_info.originalTitle, if !master_info.originalTitle.present?
:starring => slave_info.starring, if !master_info.starring.present?
:theatrical => slave_info.theatrical if !master_info.theatrical.present? }
मैं एक समय में यह एक पंक्ति कर सकता है, लेकिन उस से बचने के लिए कोशिश कर रहा हूँ:
master_info.update_attributes(:originalTitle => slave_info.originalTitle) if !master_info.originalTitle.present?
मैं कुछ पढ़ें:
master_info.update_attributes({:originalTitle => slave_info.originalTitle,
:starring => slave_info.starring,
:theatrical => slave_info.theatrical }.reject{ |key, value| value.present?})
लेकिन यह काम नहीं करता है, यह कुछ भी अद्यतन नहीं करता है, यहां तक कि खाली फ़ील्ड भी नहीं।
वास्तव में, आदर्श नाम क्या है कि फील्ड नाम दोहराना नहीं है क्योंकि वे सभी मास्टर और दास दोनों में समान हैं, लेकिन मैं एक सक्रिय रिकॉर्ड पर एक नहीं कर सकता। लेकिन यह एक माध्यमिक समस्या है, प्राथमिक एक खाली खेतों को अद्यतन कर रहा है।
यहाँ इस एक एक tumbleweed :)
और यदि आप आसपास अपडेट करने का मूल तरीका रखना चाहते हैं, तो आपको अधिभार के बजाय एक और विधि परिभाषित करनी चाहिए। – ksol
मुझे खेद है, मुझे समझ में नहीं आता है। यदि वे प्राप्त करने वाले अंत में खाली हैं तो मैं विशेषताओं को अपडेट करना चाहता हूं। यह कोड ऐसा लगता है जैसे आने वाले फ़ील्ड से खाली विशेषताओं को हटा देता है। या क्या मैं इसे गलत पढ़ रहा हूँ? – kakubei
मुझे खेद है, मैं तब तक बदल गया जब तक read_attribute (attr) .empty? '। –