Подтвердить что ты не робот

Ruby/Rails - Модели, названные двумя словами (проблемы с названиями)

Это действительно вопрос об условных обозначениях.

У меня есть модель под названием 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

Любые идеи?

4b9b3361

Ответ 1

Ваш класс должен быть singlelular.

Назовите его PromotedEvent в файле promoted_event.rb

a = PromotedEvent.new

Ответ 2

Названия моделей являются особыми и верблюдными, например, pe = PromotedEvent.new()

файл должен быть promoted_event.rb

Контроллеры имеют множественное число

PromotedEventsController

константы ALL_CAPS

locals separated_by_underscores_and_lowercase

имена таблиц - множественное число "SELECT * FROM promoted_events`

Ответ 3

Если это помогает, я всегда думаю об этом так:

Название модели является сингулярным, поскольку оно представляет собой единую конкретную вещь. Таким образом, PromotedEvent - это определенное продвинутое событие, которое имеет имя, дату и т.д.

Название таблицы, с другой стороны, является множественным. Это связано с тем, что в таблице хранится коллекция этих особых элементов. Итак, promoted_events.

В рельсах имена файлов в основном связаны с конвенцией, поскольку в этом отношении рубины имеют довольно жесткие правила, но обычно это class_name.rb. Эта страница может помочь вам получить лучший обзор того, какие соглашения используются там, где и что конкретно относится к Ruby versus Rails.

Ответ 4

Если вы экстремальные rails n00b, подобные мне, то вам не захочется создавать определение класса для вашей вновь созданной таблицы и поместить его в приложение/модели.

Это будет похоже на

class LargeCat < ActiveRecord::Base
    belongs_to :zoo
end