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

Rails - как добавить объект 'has_many' к 'владельцу'

В моем приложении user имеет много score_cards, а score_card принадлежит user

Вопрос в том, когда всякий раз, когда я создаю новый score_card, т.е. ScoreCardsController.create получает вызов, как добавить этот вновь созданный score_card в current_user (я использую devise, поэтому current_user является допустимым объектом user).

4b9b3361

Ответ 1

current_user.score_cards << score_card

ИЛИ

score_card.user = current_user
score_card.save

Ответ 2

Используйте метод построения ассоциации:

current_user.score_cards.build(params[:score_card])

В качестве альтернативы build вы можете использовать create или create!, если вам не нравятся проверки в контроллере.

Ответ 3

Я собираюсь бросить это там, если кто-то ищет способ добавить несколько объектов к связанному объекту:

score_cards = ScoreCard.all
current_user.score_cards << score_cards

Нет необходимости в current_user.save