Ассоциация Rails - как добавить объект has_many в владельца - PullRequest
40 голосов
/ 27 апреля 2011

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

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

Ответы [ 3 ]

69 голосов
/ 27 апреля 2011
current_user.score_cards << score_card

ИЛИ

score_card.user = current_user
score_card.save
9 голосов
/ 22 июля 2015

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

score_cards = ScoreCard.all
current_user.score_cards << score_cards

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

9 голосов
/ 27 апреля 2011

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

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

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

...