Rails үлгілік өрісті шығарады: өріс параметрлері, өріс параметрлері қандай?

Мен мұның ақылсыз сұрақ екенін білемін, бірақ Rails үйрену туралы көп нәрсе сияқты құжаттарды табу / навигациялау өте қиын.

Мен жаңа модель жасап, басқа үлгі идентификаторына сілтеме жасау үшін синтаксисті ұмытпақпын. Мен рельстік байланыстарға сілтеме жасай отырып, соңғы көзді қалай табуға болатынын білмедім.

$ rails g model Item name:string description:text (және мұнда reference:product немесе references:product ). Бірақ ең жақсы сұрақ - болашақта осындай ақымақтықты қайда және қалай қастерлей аламын, сол себепті мен сіздердің барлық ақылсыз мәселелеріңізді алаңдатудың қажеті жоқ.

Ескерту Мен бұл опциялардың бірінде қателесіп, менің көші-қонымды іске қосатын болсам, Rails менің дерекқорымды толығымен бұзады ... және rake db:rollback мұндай отвратительствадан әлсіз. Мен бір нәрсені түсінбейтініме сенімдімін, бірақ әзірге ... мен rails g model қайтарылған егжей-тегжейлі ақпарат әлі күнге дейін мені сызып тастайды ...

273
08 дек. Мелтеми желтоқсанның 08- іне белгіленген 2010-12-08 07:50 '10 at 7:50 2010-12-08 07:50
@ 6 жауаптар
 :primary_key, :string, :text, :integer, :float, :decimal, :datetime, :timestamp, :time, :date, :binary, :boolean, :references 

Кестенің анықтамалары бөлімін қараңыз.

428
08 дек. Жауап Pol Schreiber 08 желтоқсан. 2010-12-08 08:02 '10 at 8:02 2010-12-08 08:02

Басқасына сілтеме жасайтын үлгі жасау үшін, рельсті модель генераторын пайдаланыңыз:

 $ rails g model wheel car:references 

Бұл /models/wheel.rb қосымшасын жасайды:

 class Wheel < ActiveRecord::Base belongs_to :car end 

Келесі тасымалдауды қосады:

border=0
 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 

Құжаттамаға қатысты рельстік генераторлар үшін бастапқы нүкте Ruby on Rails: Rails пәрмен жолы нұсқаулығы , қол жетімді өріс түрлері туралы көбірек ақпарат алу үшін API құжаттамасына нұсқайды.

178
13 июля '11 в 19:46 2011-07-13 19:46 13 шілдеде сағат 13: 56-да Трояға жауап берілді

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

Мен сондай-ақ басшылықты пайдалану қиынға соқты. Түсіну оңай, бірақ іздегенімді табу қиын.

Сонымен қатар, мен rails generate командаларды rails generate уақытша жобаларым бар. Содан кейін, оларды табыстаған кезде, мен оны нақты жобада іске қосамын.

Жоғарыда көрсетілген кодқа сілтеме: http://guides.rubyonrails.org/getting_started.html#associating-models

7
20 июня '11 в 20:47 2011-06-20 20:47 Жауапты B Seven 20 маусымда сағат 20: 45-те келтіреді 2011-06-20 20:47

http://guides.rubyonrails.org рельстердегі базалық материалдан өтуге тырысып жатсаңыз жақсы сайт болуы керек. Міне, олар құрылған кезде байланыстырылған үлгілерге сілтеме. http://guides.rubyonrails.org/getting_started.html#associating-models

3
08 дек. Жауап Raghu 08 желтоқсанында берілген. 2010-12-08 07:59 '10 at 7:59 2010-12-08 07:59

Бұл пәрменді жазу кезінде осы пәрменді жазуды ұмытпаңыз. Мысалы:

Жазыңыз:

 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 

Кем дегенде бұл мен үшін қиындық болды.

3
22 авг. Бұл сұраққа 22 тамызда Виктор Августо жауап берді . 2012-08-22 17:28 '12 at 17:28 2012-08-22 17:28

Біраз кешікпей! Менде бірдей проблема болды, бірақ менің кодым басқаша болды.

def new @project = Project.new end

менің пішінім мынаған ұқсас болды:

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

Бұл өте дұрыс болды, сондықтан оны түсінуді білмедім.

Ақырында url: { projects: :create } кейін <%= form-for @project , ол маған жұмыс істеді.

Бұл біреуге көмектеседі деп үміттенемін!

0
12 окт. жауап 12-қазанда беріледі. 2016-10-12 05:50 '16, 5 : 50- те 2016-10-12 05:50

Сұрақ немесе қатысты басқа да сұрақтарға жауап береді