with tutorial framework español djangoproject desde con cero applications ruby-on-rails ruby naming-conventions

ruby-on-rails - framework - tutorial django



Ruby/Rails: Modelos nombrados con dos palabras(nombres de problemas de convención) (4)

Esta es realmente una pregunta acerca de las convenciones de nombres.

Tengo un modelo llamado PromotedEvents

El archivo se llama promote_events.rb

Creé la tabla con:

create_table :promoted_events do |t|

Ahora estoy teniendo problemas para crear cualquier cosa, así que me pregunto si hay algún problema al usar el modelo con dos palabras

estoy en la consola e intenté

a = PromotedEvents.new a = Promoted_Event.new a = promoted_event.new

y sigues obteniendo un nameerror : uninitialized constant error nameerror : uninitialized constant

¿Algunas ideas?


Los nombres de modelo son singulares y el caso de camello es así pe = PromotedEvent.new()

el archivo debe ser promoted_event.rb

Los controladores son plurales

PromotedEventsController

las constantes son ALL_CAPS

los lugareños están separated_by_underscores_and_lowercase

los nombres de las tablas son el plural ''SELECT * FROM promote_events`


Si ayuda, siempre lo pienso así:

El nombre del modelo es singular porque representa una cosa única y específica . Por lo tanto, PromotedEvent es un evento promocionado específico que tiene un nombre, fecha, etc.

El nombre de la tabla por otro lado es plural. Esto se debe a que la tabla almacena una colección de estos elementos singulares. Por lo tanto, promote_events.

En los rieles, los nombres de archivo son en su mayoría una cuestión de convención, ya que ruby ​​tiene reglas bastante laxas en este sentido, pero en general es class_name.rb . Esta página puede ayudarlo a obtener una mejor visión general de qué convenciones se usan, dónde y qué es específico de Ruby versus Rails.


Si es un n00b de rieles extremos como yo, querrá recordar crear una definición de clase para su tabla recién creada y colocarla en la aplicación / modelos.

Sería como

class LargeCat < ActiveRecord::Base belongs_to :zoo end


Tu clase debe ser singular.

Llámalo PromotedEvent en el archivo promoted_event.rb

a = PromotedEvent.new