Bazıları standart "tablo oluştur" veya "tabloyu değiştir" geçişleri olan ve bir kısmı verileri değiştiren bir grup geçiş yapıyorum. Ben la, verileri değiştirmek için benim gerçek ActiveRecord modelleri kullanıyorum:Bir sınıfı yeniden yüklemek için ActiveRecord'u nasıl zorlarım?
Blog.all.each do |blog|
update_some_blog_attributes_to_match_new_schema
end
Sorun blog sınıf yüklerseniz, ardından, tabloyu değiştirmek yeniden blog sınıfını kullanmasıdır, modeller var eski tablo tanımları ve yeni tabloya kaydedemezsiniz. Sınıfları ve onların öznitelik tanımlarını yeniden yüklemek için bir yolu var, böylece onları yeniden kullanabilir miyim?
İlişkili modellere dikkat edin. Sınıf blog ise; belongs_to Sahibi; Son olarak, Blog'a ek olarak 'Owner.reset_column_information' öğesine de ihtiyacınız olabilir. –
Tüm sütunları sıfırla! 'ActiveRecord :: Base.descendants.each {| c | c.reset_column_information} ' – zm1th
Yüklenmemiş modellerle ilgili sorunları çözmek için alt aramalara yapılan çağrıların önüne Rails.application.eager_load!' ifadesini atın. – elju