रेल 4: उपलब्ध डेटाटिप्स की सूची


406

मुझे उन डेटा प्रकारों की सूची कहां मिल सकती है जिनका उपयोग रूबी ऑन रेल्स 4 में किया जा सकता है? जैसे कि

  • text
  • string
  • integer
  • float
  • date

मैं नए लोगों के बारे में सीखता रहता हूं और मुझे एक सूची पसंद है जिसे मैं आसानी से संदर्भित कर सकता हूं।



1
@MarkThomas: डुप्लिकेट नहीं। यहाँ मेरा सवाल विशेष रूप से रेल्स 4 के लिए है
निकोलस राउल

उस प्रश्न में स्वीकृत उत्तर अनिवार्य रूप से आपके स्वीकृत उत्तर के समान है। दोनों रेल 4 डॉक्स की ओर इशारा करते हैं। इसके अलावा, यह एक विवादास्पद बिंदु क्योंकि ActiveRecord डेटाटाइप्स रेल 3 से रेल 4. करने के लिए परिवर्तन नहीं किया है
मार्क थॉमस

10
मैं एक के लिए नहीं जानता था कि AR डेटाटाइप्स रेल 3 और 4 के बीच नहीं बदला था, इसलिए मैं इस प्रश्न का उत्तर देता हूं / उत्तर यहां है।
Dty

जवाबों:


667

यहाँ सभी रेल 4 (ActiveRecord माइग्रेशन) डेटाटिप्स हैं:

  • :binary
  • :boolean
  • :date
  • :datetime
  • :decimal
  • :float
  • :integer
  • :bigint
  • :primary_key
  • :references
  • :string
  • :text
  • :time
  • :timestamp

स्रोत: http://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/SchemaStatements.html#method-i-add_column
ये वही हैं जैसे रेल 3

यदि आप PostgreSQL का उपयोग करते हैं, तो आप इनका लाभ भी उठा सकते हैं:

  • :hstore
  • :json
  • :jsonb
  • :array
  • :cidr_address
  • :ip_address
  • :mac_address

यदि आप अपने ऐप को Not-PostgreSQL डेटाबेस के साथ चलाते हैं, तो उन्हें स्ट्रिंग्स के रूप में संग्रहीत किया जाता है।

संपादित करें, 2016-सितंबर -19:

नहीं है एक बहुत अधिक रेल 4 में postgres विशिष्ट डेटाटाइप्स और भी अधिक रेल 5 में।


1
मेरा मानना ​​है कि ये सभी डेटाबेस में समर्थित डेटाटाइप्स हैं। हालाँकि जैसा कि पीटर डी रिडर ने उल्लेख किया है कि कुछ डोरटेप्स जैसे हस्टोर हैं जो अभी भी समर्थित हैं।
अल्ताफ हमीज़

प्रश्न: डाक्यूमेंट्स में textडेटा टाइप नहीं लगता है । फिर भी, रेल अभी भी इसे संभाल सकती है? पृष्ठभूमि में क्या होता है?
एहनबाकद २०'१४

PostgreSQL में एक पाठ डेटाटाइप होता है। हुड के तहत सभी चरचर / पाठ क्षेत्र चर लंबाई सरणियाँ हैं। postgresql.org/docs/9.3/interactive/datatype-character.html
makhan

मैं यह जोड़ना चाहता हूं कि यदि आप एक गैर-पोस्टग्रैज डेटाबेस का उपयोग कर रहे हैं और आपका एप्लिकेशन स्कीमा_फॉर्मैट उपयोग करने के लिए सेट नहीं है: sql, तो आपकी स्कीमा.rb फ़ाइल अभ्यस्त तालिका को डंप करने में सक्षम हो सकती है जैसे कि: json। स्कीमा अभी भी डिफ़ॉल्ट प्रकार का उपयोग करने वाली तालिकाओं के लिए डंप किया जाएगा, लेकिन आप विशेष प्रकार के साथ तालिका के लिए एक टिप्पणी देखेंगे, जैसे "तालिका को डंप नहीं कर सका ..."। स्कीमा_फॉर्मेट सेट करने के लिए यहां देखें
bpercevic

इसके अलावा, उन कॉलमों nilमें एक गैर-पोस्टग्रेज डेटाबेस में टाइप होगा । आप कंसोल में किस प्रकार का निरीक्षण कर सकते हैं Model.columns_hash["column_name"].type। ये केवल ऐसी चीजें हैं जिनका उपयोग करते समय मैंने दौड़ लगाई है: json कॉलम प्रकार, मैं गलत हो सकता है और यह हर किसी के लिए नहीं हो सकता है, लेकिन मैंने सोचा कि मैं भविष्य के पाठकों को इस बात से अवगत कराऊंगा कि उन्हें परेशानी है। भले ही, इस जवाब के लिए +1 क्योंकि यह वास्तव में मेरी मदद करता है।
bpercevic

249

आपको आमतौर पर यह जानना उपयोगी हो सकता है कि इन डेटा प्रकारों का उपयोग किस लिए किया जाता है:

संघ बनाने के लिए उपयोग किए जाने वाले संदर्भ भी हैं। लेकिन, मुझे यकीन नहीं है कि यह एक वास्तविक डेटा प्रकार है

PostgreSQL में उपलब्ध नई रेल 4 डाटापाइप:

  • :hstore- एकल मूल्य के भीतर कुंजी / मान जोड़े को संग्रहीत करना ( इस नए डेटा प्रकार के बारे में और जानें )
  • :array- एक विशेष पंक्ति में संख्याओं या तारों की व्यवस्था ( इसके बारे में और जानें और उदाहरण देखें )
  • :cidr_address - IPv4 या IPv6 होस्ट पतों के लिए उपयोग किया जाता है
  • :inet_address - IPv4 या IPv6 होस्ट पतों के लिए उपयोग किया जाता है, जो cidr_address के समान है, लेकिन यह नेटमर्स के दाईं ओर नॉनज़रो बिट्स के साथ मूल्यों को भी स्वीकार करता है
  • :mac_address - मैक होस्ट पतों के लिए उपयोग किया जाता है

यहाँ और यहाँ पता डेटेट के बारे में अधिक जानें ।

इसके अलावा, यहां माइग्रेशन पर आधिकारिक गाइड: http://edgeguides.rubyonrails.org/migrations.html


13
तालियां। पूरी तरह से, और उपयोग की प्रत्याशा के लिए +1। यह वहीं UX मानसिकता है।
अहानिबेक्स्ड

5
बिल्कुल भयानक जवाब - इसके लिए बहुत धन्यवाद। मतभेदों पर लेख के लिंक ने सचमुच सवालों को मेरे मुंह से निकाल दिया।
एलूएफ

3
पोस्टग्रैज के लिए इसके अतिरिक्त एक uuidप्रकार है जिसे सामान्य फ़ील्ड की तरह t.uuid :name... या प्राथमिक कुंजी की तरह create_table :users, id: :uuid do...या जैसे इस्तेमाल किया जा सकता हैt.primary_key :id, :uuid, :default => 'uuid_generate_v1()'
TNT

1
एपीआई के डॉक्सActiveRecord::ConnectionAdapters::PostgreSQL::ColumnMethods में सूचीबद्ध रेल द्वारा समर्थित अतिरिक्त पोस्टग्रेक् एस प्रकार । मुख्य विशेषताएं शामिल हैं money, json, xml,daterange
एलियट साइक्स

1
हां, पोस्टग्रेज के लिए uuid जोड़ा गया था, लेकिन यह एक सक्रिय रिकॉर्ड बनाने () के साथ वापस नहीं आया है। क्या उस मुद्दे को रेल 5 के साथ तय किया गया है?
मार्टिन सोमर

156

यह न केवल प्रकार, बल्कि डेटाबेस प्रकारों के लिए इन प्रकारों के मानचित्रण को भी जानना महत्वपूर्ण है:

यहां छवि विवरण दर्ज करें

यहां छवि विवरण दर्ज करें


स्रोत जोड़ा गया - रेल 4 के साथ फुर्तीली वेब विकास


1
मुझे इस तालिका में json प्रकार देखने में रुचि होगी, यदि आप इसे महसूस करते हैं
स्वतंत्रता ०२

2
आप हमेशा अपने NATIVE_DATABASE_TYPESलिए आवश्यक एडाप्टर की जांच कर सकते हैं - github.com/rails/rails/blob/master/activerecord/lib/…
gotqn

क्या समय के साथ इन चीजों के लिए गाइड या सच्चाई का एक स्रोत है?
ह्यूगो

81

आप इस सूची का उपयोग हर उस समय तक कर सकते हैं जो आप चाहते हैं (भले ही आपके पास इंटरनेट का उपयोग न हो):

rails generate model -h

5

Rails4 में Postgres के लिए कुछ अतिरिक्त डेटाटिप्स हैं।

उदाहरण के लिए, उनमें से # 400 नामों में से दो को मेल करें:

रेल्स 4 को पोस्टग्रेज में देशी डेटाैटिप्स के लिए समर्थन है और हम इनमें से दो को यहां दिखाएंगे, हालांकि बहुत अधिक समर्थित हैं: सरणी औरस्टोर। हम एक स्ट्रिंग-टाइप कॉलम में एरेज़ स्टोर कर सकते हैं और hstore के प्रकार को निर्दिष्ट कर सकते हैं।

इसके अलावा, आप cidr, inet और macaddr का भी उपयोग कर सकते हैं। अधिक जानकारी के लिए:

https://blog.engineyard.com/2013/new-in-rails-4

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.