Добавление объекта в ассоциацию has_and_belongs_to_many с Rails - PullRequest
2 голосов
/ 07 октября 2010

У меня есть простая связь has_and_belongs_to_many между пользователями, которая отлично работает.

Однако я хотел бы добавить дружеские отношения между всеми новыми созданными пользователями и первым пользователем (да, точно так же, как Том MySpace), прямо в методе Create:

def create
  @user = User.new(params[:user])
  if @user.save
    @user.friends << User.find(1)
    redirect_to root_path
  else
    render :action => :new
  end
end

Я не понимаю, почему это не работает. Нет ошибок, ничего, просто он не добавляет первого пользователя в друзья нового пользователя.

(для информации я использую Rails 2.3.4)

Что мне делать?

Kevin

Ответы [ 2 ]

2 голосов
/ 07 октября 2010

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

2 голосов
/ 07 октября 2010

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

...