0

У меня есть модель для отслеживания очков, которые зарабатывает студент. Иногда они зарабатывают 1 очко, и для некоторых задач они зарабатывают несколько очков. Таблица будет выглядеть примерно так:Плюрализующая модель в Rails/ActiveRecord

points 
-------------- 
student_id:integer 
task_id:integer 
points:integer 
earned_at:date 

Что я должен назвать этой моделью? Point или Points? Обычно мои модели являются единственными, и Rails разумно плюрализует его в соответствующих местах. Но в этом случае каждая запись представляет собой несколько точек. Когда я звоню student.points, я хочу, чтобы он возвращал все очки, которые они когда-либо зарабатывали. Когда я звоню student.points.first, я хочу, чтобы он вернул первую группу очков, которые они заработали.

Использование Rails 3.2.8

ответ

0

Я бы сохранил модель единственного числа; подумайте, что каждый элемент точки является «точкой записи» или «группой точек», которая содержит несколько точек. Кроме того, я бы изменил атрибут «points» на «amount» или что-то еще, поскольку Point.amount кажется более чистым, чем Point.points.

Отъезд: https://stackoverflow.com/a/3399753/1700540 и я уверен, что вы можете найти другие ресурсы с похожими мнениями.

+0

Бит более формальный источник: http://itsignals.cascadia.com.au/?p=7 Ознакомьтесь с их ссылкой на модели именования. – JCoster22

+0

То, что вы говорите, имеет смысл, и мне определенно нравится поле количества против очков. Но таблица под названием «Point» просто так неловко. Я обдумаю это на минуту. –

+0

Я полагаю, что Rails заставит таблицу назвать точки, если я назову модельную точку. Тем не менее модель, называемая Point, кажется такой неловкой. –

Смежные вопросы