обозначить модель рельсов, если не хранится в базе данных - PullRequest
0 голосов
/ 15 ноября 2011

Существует ли конкретное соглашение об именах для модели, которая не будет храниться в базе данных?Например, у меня есть расписание, которое будет моделью, но не будет в базе данных, потому что это просто структура данных.Другими словами это не будет расширять ActiveRecord :: Base?

Ответы [ 3 ]

1 голос
/ 15 ноября 2011

Если вы хотите создать в модели класс, который не сохраняется в базе данных, просто не наследуйте ActiveRecord :: Base

например,

class SomeClass 

end 

Определение класса все еще сохраняется в файле some_class.rb в каталоге модели

Что касается соглашения об именах. Ну, класс Model - это класс Model, не имеет значения, сохраняется ли он в базе данных, или где-то еще, или нет вообще. Я не вижу необходимости в каких-либо специальных соглашениях об именах.

Ваш контроллер и представления должны просто взаимодействовать с объектами вашей модели, не заботясь о базовом механизме сохранения этого объекта. Это одно из главных преимуществ Model-View-Controller ... Controller и View не должны касаться внутренней работы над объектами Model. Так что и ваше соглашение об именах не должно.

1 голос
/ 15 ноября 2011

Я рассматриваю это как внутреннюю деталь реализации;Я не отразил бы это в названии, потому что другие модели, которые взаимодействуют с данной моделью, не должны знать или беспокоиться о том, сохраняется ли она.И ваши требования могут измениться позже, и это станет постоянным.

0 голосов
/ 15 ноября 2011

Я склонен создавать неактивные модели записей для наследования от класса NonActiveRecordModel (или чего-то подобного, который вы можете определить самостоятельно). Абстрактный класс NonActiveRecordModel может иметь общее поведение, которое используется всеми вашими неактивными моделями записей, такими как проверки с помощью проверяемого гема и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...