Model oluşturma işleminde, varcharın boyutunu örneğin isim varchar (20), yaş varchar (6), git-bash yoluyla tanımlamak istiyorum.Raylarda MySQL için varchar uzunluğunu tanımlayın
Yığında arama yaptım, ancak herhangi bir yanıt bulamadım.
Model oluşturma işleminde, varcharın boyutunu örneğin isim varchar (20), yaş varchar (6), git-bash yoluyla tanımlamak istiyorum.Raylarda MySQL için varchar uzunluğunu tanımlayın
Yığında arama yaptım, ancak herhangi bir yanıt bulamadım.
column
yöntemi için belgelenen sütunlar oluşturulurken bir dizi seçenek var. Sonraki değişiklikleri yaparken add_column
'a da başvururlar. sizin veritabanında böyle sınırı getirme derece sıradışı bir not olarak
t.string :name, :limit => 20
t.string :age, :limit => 6
ve daha iyi bir çözüm validates
kullanılarak model üzerinde sınırlamaktır:
daha sınırlı bir sütun yapmak için en özlü bir yoldur . Örneğin:
validates :name,
:presence => true,
:length => { :maximum => 20 }
MySQL böylece bir uzunluk limiti sonunda özellikle bu kadar kısa uzunluğa sahip, veri kaybı yol açacaktır olmamasından, siz söylemeden çok uzun olan değerleri kesmek için bir eğilim vardır.
Veritabanındaki VARCHAR
sütunlarının değişken uzunlukta olduğunu unutmayın, bu nedenle VARCHAR(255)
ile VARCHAR(20)
arasındaki on karakter değerinde depolama avantajı yoktur.
Tek bir soru lütfen .. neden komut satırından bu şekilde '' name: varchar (20) '' modelini oluştururken tanımlamıyoruz, sadece bilmek istiyordum? .. Belirsiz bir soru için sakın unutmayın. –
Modellerin komut satırı üzerinden tanımlanması desteklenir, ancak elde edebileceğiniz şeylerde çok daha sınırlı. Aynı zamanda sahip olmak için oldukça tuhaf bir özellik ve bunu yapmak için neden gerekli olduğundan emin değilim. Bir komut dosyasından kendi tamamen özelleştirilmiş taşıma dosyanızı oluştururken bunu kullanmanın avantajı nedir? Genellikle model, endeksleri eklemek için en azından bazı ancak en önemsiz olan durumlar hariç olmak üzere bazı düzenleme gerektirir. – tadman
Şüphelerimi temizlediğiniz için teşekkürler. –