Ответ 1
Ваш класс должен быть singlelular.
Назовите его PromotedEvent
в файле promoted_event.rb
a = PromotedEvent.new
Это действительно вопрос об условных обозначениях.
У меня есть модель под названием PromotedEvents
Файл называется promoted_events.rb
Я создал таблицу с помощью
create_table :promoted_events do |t|
Теперь у меня возникают проблемы с созданием чего-либо, поэтому мне интересно, есть ли проблема с использованием модели с двумя словами
im в консоли и попробовал
a = PromotedEvents.new
a = Promoted_Event.new
a = promoted_event.new
и продолжайте получать ошибку nameerror : uninitialized constant
Любые идеи?
Ваш класс должен быть singlelular.
Назовите его PromotedEvent
в файле promoted_event.rb
a = PromotedEvent.new
Названия моделей являются особыми и верблюдными, например, pe = PromotedEvent.new()
файл должен быть promoted_event.rb
Контроллеры имеют множественное число
PromotedEventsController
константы ALL_CAPS
locals separated_by_underscores_and_lowercase
имена таблиц - множественное число "SELECT * FROM promoted_events`
Если это помогает, я всегда думаю об этом так:
Название модели является сингулярным, поскольку оно представляет собой единую конкретную вещь. Таким образом, PromotedEvent
- это определенное продвинутое событие, которое имеет имя, дату и т.д.
Название таблицы, с другой стороны, является множественным. Это связано с тем, что в таблице хранится коллекция этих особых элементов. Итак, promoted_events.
В рельсах имена файлов в основном связаны с конвенцией, поскольку в этом отношении рубины имеют довольно жесткие правила, но обычно это class_name.rb
. Эта страница может помочь вам получить лучший обзор того, какие соглашения используются там, где и что конкретно относится к Ruby versus Rails.
Если вы экстремальные rails n00b, подобные мне, то вам не захочется создавать определение класса для вашей вновь созданной таблицы и поместить его в приложение/модели.
Это будет похоже на
class LargeCat < ActiveRecord::Base
belongs_to :zoo
end