मेरे पास एक कॉलम price
वाला मॉडल है। मुझे price
का मान डिफ़ॉल्ट मान के रूप में एक नया_column marked_price
जोड़ने की आवश्यकता है। क्या मैं इसे अपने प्रवासन में लिख सकता हूं, या ऐसा करने का सबसे अच्छा तरीका क्या हो सकता है?रेल प्रवासन में नए कॉलम के लिए अन्य कॉलम के मान को डिफ़ॉल्ट मान के रूप में कैसे कॉपी करें?
कुछ की तरह:
class AddMarkedPriceToMenuItems < ActiveRecord::Migration
def change
add_column :menu_items, :marked_price, :decimal, :default => :price
end
end
अद्यतन कर सकते हैं मुझे लगता है कि आप "कीमत" और "marked_price" मिल गया गलत रास्ता। यह वाक्यविन्यास 'MenuItem.update_all (मूल्य:: market_price)' काम नहीं करता है (कम से कम ActiveRecord 4.2.7.1 पर) और 'MenuItem.update_all ("mark_price = price") होना चाहिए' –
इसके अलावा, 'update_all' माइग्रेट करते समय केवल नीचे नहीं किया जाना चाहिए (नीचे नहीं)। इसे 'रिवर्सिबल' ब्लॉक http://edgeguides.rubyonrails.org/active_record_migrations.html#using-reversible –
@WizardofOgz में लपेटा जा सकता है, आप सभी गिनती पर सही हैं। मैंने अपना जवाब अपडेट कर लिया है। धन्यवाद। –