LINUX.ORG.RU

Наборы/презеты для объектов has_many :through

 


0

2

Пользователь создаёт статус, в статус он может добавлять упражнения.

Классический has_many :through:

Status → Status_Exercise → Exercise

Я хочу чтобы он мог добавлять сразу набор, презет упражнений. То есть создавать тренировку добавляя в неё упражнения, а потом выбирать её в статусе тем самым добавляя все упражнения из неё в статус.

При этом пользователь мог бы добавлять/удалять упражнения из статуса, или вообще добавить все упражнения вручную, не используя набор/тренировку.

Правда у меня совсем нет идей как это организовать.

Буду рад любой полезной информации, может быть кто-то уже решал такую проблему, или видел статью/скринкаст на тему.



Последнее исправление: CYB3R (всего исправлений: 1)

Ответ на: комментарий от ksevelyar

Status has_many_and_belongs_to_many Status_Exercise
Nabor has_many_and_belongs_to_many Status_Exercise
Status_Exercise belongs_to Exercise

nabor.status_exercises.each{|status_exercise| status.status_exercises << status_exercise }
special-k ★★★
()
Ответ на: комментарий от special-k

Status has_many_and_belongs_to_many Status_Exercise
Nabor has_many_and_belongs_to_many Status_Exercise
Status_Exercise belongs_to Exercise

Вы, вероятно, увидели что-то своё. У меня даже нет догадок что именно, когда я смотрю на вторую строчку.

Но не суть, вернёмся к нашим баранам, то бишь тренировкам (или наборам).

Упростим структуру до:

Status has_many Exercises
Workout has_many Exercises

Вы написали такую строчку:

workout.exercises.each{|exercise| status.exercises << exercise }

Она как я понимаю должна добавлять в статус упражнения из тренировки.

Но пока применения я ей не вижу. После того, как пользователь выбирает тренировку в статусе, он должен иметь возможность удалить часть упражнений из неё в статусе.

В то время как этот код добавляет упражнения постфактум.

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

Как я понимаю мне нужен в каком-то виде js.

ksevelyar
() автор топика
Ответ на: комментарий от ksevelyar

Status has_many_and_belongs_to_many Exercises
Workout has_many_and_belongs_to_many Exercises

т.е. и «статус» и «набор» содержат некое количество упражнений.

В то время как этот код добавляет упражнения постфактум.

Суть изменяет. Вообще конкретно этот код как бы копирует перечень упражнений из набора, но можно же и удалять.

special-k ★★★
()
Ответ на: комментарий от special-k

Я хочу чтобы он мог добавлять сразу набор
этот код как бы копирует перечень упражнений из набора

special-k ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.