Ruby on Rails genera campo Modello: Tipo - quali sono le opzioni per il campo: Tipo?
-
10-10-2019 - |
Domanda
Sto cercando di generare un nuovo modello e dimenticare la sintassi per fare riferimento a ID di un altro modello. Mi piacerebbe guardare in su me stesso, ma non ho capito, in tutto il nostro Ruby on Rails collegamenti alla documentazione, come trovare la fonte definitiva.
$ rails g model Item name:string description:text
(e qui sia reference:product
o references:product
). Ma la domanda migliore è , dove o come Posso cercare questo tipo di stupidità facilmente in futuro?
Nota: Ho imparato nel modo più duro che se digitano una di queste opzioni e Esegui mia migrazione , allora Ruby on Rails sarà totalmente vite la mia base di dati ... e rake db:rollback
è impotente contro tali screwups. Sono sicuro che io non sono solo capire qualcosa, ma fino a quando lo faccio ... le informazioni "dettagliate" restituito da rails g model
me graffi ...
Altri suggerimenti
Per creare un modello che fa riferimento a un'altra, usa il Ruby on Rails generatore di modello:
$ rails g model wheel car:references
che produce app / modelli / wheel.rb :
class Wheel < ActiveRecord::Base
belongs_to :car
end
E aggiunge il seguente migrazione:
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
Quando si esegue la migrazione, il seguente finirà nel vostro 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
Per quanto riguarda la documentazione, un punto di partenza per le rotaie generatori è Ruby on Rails: una guida alla riga di comando Rails cui si punta a documentazione API per ulteriori informazioni sui tipi di campo disponibili.
$ rails g model Item name:string description:text product:references
Anche io trovato le guide difficile da usare. Facile da capire, ma difficile da trovare quello che sto cercando.
Inoltre, non ho progetti temporanei che ho eseguito i comandi rails generate
on. Poi, una volta li faccio lavorare corro sul mio progetto reale.
di riferimento per il codice di cui sopra: http://guides.rubyonrails.org/getting_started. html # Associazione delle-modelli
Ricordate di non sfruttare il testo durante la scrittura di questo comando. Ad esempio:
Do scrittura:
rails g model product title:string description:text image_url:string price:decimal
Non scrivere:
rails g Model product title:string description:text image_url:string price:decimal
Almeno era un problema per me.
http://guides.rubyonrails.org dovrebbe essere un buon sito, se si sta cercando di ottenere attraverso le cose di base in Ruby on Rails.
Questo è il link per modelli associati mentre li si generano: http://guides.rubyonrails.org/getting_started.html#associating-models
Ho avuto lo stesso problema, ma il mio codice era un po 'diverso.
def new
@project = Project.new
end
E la mia forma sembrava questa:
<%= form_for @project do |f| %>
and so on....
<% end %>
Questo è stato completamente corretto, quindi non sapevo come per capirlo.
Infine, solo l'aggiunta di url: { projects: :create }
dopo <%= form-for @project
ha lavorato per me.
E 'molto semplice in ROR per creare un modello che i riferimenti altro.
rotaie nome g di modello dell'articolo: stringa di descrizione: Prodotto di testo: i riferimenti
Questo codice aggiungerà 'product_id' colonna della tabella Elemento