रूबी ऑन रेल्स मॉडल फ़ील्ड उत्पन्न करता है: प्रकार - फ़ील्ड के लिए विकल्प क्या हैं: प्रकार?


308

मैं एक नया मॉडल बनाने की कोशिश कर रहा हूं और दूसरे मॉडल की आईडी को संदर्भित करने के लिए सिंटैक्स भूल गया हूं। मैं इसे स्वयं देखूंगा, लेकिन मुझे पता नहीं चल पाया है कि मेरे सभी रूबी डाक्यूमेंट लिंक पर, निश्चित स्रोत कैसे खोजे।

$ rails g model Item name:string description:text(और यहाँ या तो reference:productया references:product)। लेकिन बेहतर सवाल यह है कि मैं भविष्य में इस तरह की शिथिलता को आसानी से कहां या कैसे देख सकता हूं?

नोट: मैंने कठिन तरीका सीखा है कि अगर मैं इनमें से किसी एक विकल्प को गलत करता हूं और अपना माइग्रेशन चलाता हूं तो रूबी ऑन रेल्स पूरी तरह से मेरे डेटाबेस को rake db:rollbackखराब कर देगा ... और इस तरह के स्क्रूपअप के खिलाफ शक्तिहीन है। मुझे यकीन है कि मैं अभी कुछ समझ नहीं रहा हूं, लेकिन जब तक मैं नहीं करता ... "विस्तृत" जानकारी rails g modelअभी भी मुझे वापस भेज रही है मुझे खरोंच ...


के बारे में क्या: uniq और: सूचकांक क्षेत्र विकल्प? जैसे "रेल जी मॉडल टाइटल बॉडी: टेक्स्ट ट्रैकिंग_आईडी: पूर्णांक: यूनीक"। मैं उन लोगों के लिए प्रलेखन नहीं ढूँढ सका। क्या कोई और है?
कांगूर

11
rails generate model --help
डेनिस

1
एक संस्करण नियंत्रण का उपयोग करना आपको किसी भी उत्पन्न फ़ाइलों को रोलबैक करने का एक आसान तरीका प्रदान करेगा। और अगर समस्या डेटाबेस में है ... ठीक है, तो आप हमेशा db: स्कीमा: लोड कर सकते हैं
हेक्टर ऑर्डोनेज़

1
अच्छी तरह से यह 140k बार देखा गया है और 243 लोगों ने आज तक इसे उपयोगी पाया है इसलिए यह किसी भी तरह से एक मूर्खतापूर्ण सवाल नहीं है :)
BKSpurgeon

जवाबों:


475
:primary_key, :string, :text, :integer, :float, :decimal, :datetime, :timestamp,
:time, :date, :binary, :boolean, :references

तालिका परिभाषा अनुभाग देखें ।


13
हम्म ... का कोई जिक्र नहीं :referenceया :referencesमें अपने जवाब या कैसे की एक विवरण लिंक आपके द्वारा दी गई में जनरेटर के लिए इसे पारित करने के?!?
मुल्तेमी

53
इस सवाल का जवाब बिल्कुल नहीं है।
मिकेल

1
इसे उत्तर के रूप में चुना गया है, लेकिन यह जानते हैं कि : संदर्भ भी एक विकल्प है।
मेल्टेमी जू

14
क्या कुछ दस्तावेज हैं जो वास्तव में इन स्तंभ प्रकारों को परिभाषित करते हैं? उदाहरण के लिए, कैसे stringअलग है text?
ग्रन्थ बिर्चमियर

3
@ कंगूर uniqऔर indexप्रत्यय (और सभी प्रकार) के उपयोग में प्रलेखित हैं rails generate modelrails g modelउपयोग डॉक्स देखने के लिए चलाएँ ।
डेनिस

188

एक मॉडल बनाने के लिए जो दूसरे का संदर्भ देता है, रूबी ऑन रेल्स मॉडल जनरेटर का उपयोग करें:

$ rails g model wheel car:references

यह ऐप / मॉडल / व्हील.ब्र उत्पन्न करता है :

class Wheel < ActiveRecord::Base
  belongs_to :car
end

और निम्नलिखित प्रवास जोड़ता है:

class CreateWheels < ActiveRecord::Migration
  def self.up
    create_table :wheels do |t|
      t.references :car

      t.timestamps
    end
  end

  def self.down
    drop_table :wheels
  end
end

जब आप माइग्रेशन चलाते हैं, तो निम्नलिखित आपके db / schema.rb में समाप्त हो जाएगा :

$ rake db:migrate

create_table "wheels", :force => true do |t|
  t.integer  "car_id"
  t.datetime "created_at"
  t.datetime "updated_at"
end

प्रलेखन के लिए, रेल जनरेटर के लिए एक प्रारंभिक बिंदु रेल पर रूबी है: रेल गाइड लाइन के लिए एक गाइड जो आपको उपलब्ध फ़ील्ड प्रकारों के बारे में अधिक जानकारी के लिए एपीआई प्रलेखन को इंगित करता है ।


4
टिप्पणी के साथ थोड़ा पुराना है, लेकिन इस सवाल का जवाब है। +1
omninonsense

7

$ rails g model Item name:string description:text product:references

मैंने भी गाइडों का उपयोग करना मुश्किल पाया। समझने में आसान है, लेकिन मैं जो ढूंढ रहा हूं उसे ढूंढना मुश्किल है।

इसके अलावा, मेरे पास अस्थायी परियोजनाएं हैं जिन rails generateपर मैं कमांड चलाता हूं । फिर एक बार जब मैं उन्हें काम करवाता हूं तो मैं इसे अपने असली प्रोजेक्ट पर चलाता हूं।

उपरोक्त कोड का संदर्भ: http://guides.rubyonrails.org/getting_started.html#associating-melsels


3

इस कमांड को लिखते समय अपने टेक्स्ट को कैपिटलाइज़ करना न भूलें। उदाहरण के लिए:

लिखें:

rails g model product title:string description:text image_url:string price:decimal

मत लिखो:

rails g Model product title:string description:text image_url:string price:decimal

कम से कम मेरे लिए यह एक समस्या थी।


रुको?!? क्या? मैं हर समय अपने मॉडल के नाम को बड़ा करता हूँ! आप क्या “समस्याएं” देख रहे हैं?
मुल्तेमी

2
मैं आपके मॉडल के नाम की नहीं, बल्कि 'मॉडल' नाम की बात कर रहा हूं। मैंने इस तरह से एक मॉडल बनाने की कोशिश की: रेल जी मॉडल उत्पाद शीर्षक: स्ट्रिंग और मिला: जनरेटर मॉडल नहीं मिल सका। इसलिए मैंने इसे इस तरह आज़माया: रेल मॉडल मॉडल शीर्षक: स्ट्रिंग और यह काम किया।
विक्टर ऑगस्तो

1
आह। उस b4 का सामना नहीं किया था। अच्छा सुझाव!
मुलताई सेप

2
(यह मॉडल का नाम नहीं है कि यह मुद्दा है, यह modelजनरेटर के संदर्भ में शब्द है । rails g model Product …यह ठीक है।)
अशेरह

3

http://guides.rubyonrails.org एक अच्छी साइट होनी चाहिए, अगर आप रूबी ऑन रेल्स में मूल सामान लेने की कोशिश कर रहे हैं।

जब आप उन्हें जेनरेट करते हैं तो सहयोगी मॉडल का लिंक यहां दिया गया है: http://guides.rubyonrails.org/getting_started.html#associating-models


0

एक मॉडल बनाने के लिए ROR में यह बहुत सरल है जो अन्य को संदर्भित करता है।

रेल जी मॉडल मद का नाम: स्ट्रिंग विवरण: पाठ उत्पाद: संदर्भ

यह कोड आइटम तालिका में 'product_id' कॉलम जोड़ेगा


0

मॉडल बनाते समय आपके द्वारा उल्लिखित कई प्रकार के डेटा हो सकते हैं, कुछ उदाहरण हैं:

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

वाक्य - विन्यास:

field_type:data_type

0

मेरे पास एक ही मुद्दा था, लेकिन मेरा कोड थोड़ा अलग था।

def new
 @project = Project.new
end

और मेरा रूप इस तरह देखा:

<%= form_for @project do |f| %>
     and so on....
<% end %>

यह पूरी तरह से सही था, इसलिए मुझे नहीं पता था कि यह कैसे पता लगाना है।

अंत में, बस जोड़ना

url: { projects: :create }

उपरांत

<%= form-for @project ...%>

मेरे लिए काम किया।


यह एक अच्छा जवाब हो सकता है लेकिन मुझे यकीन है कि यह कैसे ओपी क्षेत्र प्रकार (के बारे में है जो से संबंधित है नहीं कर रहा हूँ :integer, :string, आदि ...)।
मुल्तेमी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.