ruby-on-rails - index - rails generate view
Ruby on Rails genera el campo del modelo: tipo. ¿Cuáles son las opciones para el campo: tipo? (6)
Para crear un modelo que haga referencia a otro, use el generador de modelos de Ruby on Rails:
$ rails g model wheel car:references
Eso produce app / models / wheel.rb :
class Wheel < ActiveRecord::Base
belongs_to :car
end
Y añade la siguiente migración:
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
Cuando ejecute la migración, lo siguiente terminará en su 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
En cuanto a la documentación, un punto de partida para los generadores de rieles es Ruby on Rails: una guía de la línea de comandos de Rails que le indica la documentación de la API para obtener más información sobre los tipos de campos disponibles.
Estoy intentando generar un nuevo modelo y olvidar la sintaxis para hacer referencia a la ID de otro modelo. Lo busqué yo mismo, pero no he descubierto, entre todos mis enlaces de documentación de Ruby on Rails, cómo encontrar la fuente definitiva.
$ rails g model Item name:string description:text
(y aquí, ya sea reference:product
o references:product
). Pero la mejor pregunta es ¿ dónde o cómo puedo buscar este tipo de tonterías fácilmente en el futuro?
Nota: Aprendí de la manera más difícil que si escribo mal una de estas opciones y ejecuto mi migración , Ruby on Rails arruinará totalmente mi base de datos ... y rake db:rollback
es impotente ante tales errores. Estoy seguro de que no estoy entendiendo algo, pero hasta que lo haga ... la información "detallada" devuelta por los rails g model
todavía me deja rascar ...
Recuerda no poner mayúsculas en tu texto al escribir este comando. Por ejemplo:
Escribe:
rails g model product title:string description:text image_url:string price:decimal
No escriba:
rails g Model product title:string description:text image_url:string price:decimal
Al menos fue un problema para mí.
Tuve el mismo problema, pero mi código era un poco diferente.
def new @project = Project.new end
Y mi forma se veía así:
<%= form_for @project do |f| %> and so on.... <% end %>
Eso fue totalmente correcto, así que no sabía cómo resolverlo.
Finalmente, solo agregue url: { projects: :create }
después de que <%= form-for @project
funcionó para mí.
http://guides.rubyonrails.org debería ser un buen sitio si estás tratando de entender las cosas básicas de Ruby on Rails.
Aquí hay un enlace para asociar los modelos mientras los genera: http://guides.rubyonrails.org/getting_started.html#associating-models
$ rails g model Item name:string description:text product:references
Yo también encontré las guías difíciles de usar. Fácil de entender, pero difícil de encontrar lo que estoy buscando.
Además, tengo proyectos temporales en los que ejecuto los rails generate
comandos. Luego, una vez que los hago funcionar, los ejecuto en mi proyecto real.
Referencia para el código anterior: http://guides.rubyonrails.org/getting_started.html#associating-models
:primary_key, :string, :text, :integer, :float, :decimal, :datetime, :timestamp,
:time, :date, :binary, :boolean, :references
Vea la sección de definiciones de tablas .