2013-07-24 7 views
0

У меня есть что-то вроде следующего:Это анти-шаблон или это нормально?

exercise.log_entries.for_user(@user).for_date(date) 

Является ли это действительно плохой код для Rails? Я не могу сделать @ user.log_entries, потому что он должен быть привязан к определенному упражнению.

Рассматривается ли это нормально или очень плохо? Как бы вы реорганизовали?

ответ

1

Если вы используете это для контроля доступа, то я бы сказал, что это, вероятно, немного вонючий, хотя я бы не стал жаловаться слишком громко об этом. Вызывает беспокойство то, что отсутствие контроля над вашим доступом означает, что в будущем рефакторинг может привести к нарушению этих элементов управления, что будет по меньшей мере смущать.

Как твои ассоциации формируются? Было бы возможно что-то подобное?

@user.log_entries.for_exercise(exercise).for_date(date) 
+0

Да, абсолютно. Так что лучше сначала начать с пользователя? Это в основном то же самое, но просто отменено ... И это не так много элементов управления доступом, поскольку он просматривает итерацию. Проведите тренировку. Затем exercise_workout, который уникально использует упражнение для тренировки, связанной с пользователем, а затем пользователь имеет записи журнала против этого упражнения. –

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